@return如果数组中的值以排序(非递减)顺序显示
,则为true
public static boolean isSorted(int[] data)
{
/* missing code */
}
以下哪项可用于替换/ *缺少代码* /以便isSorted按预期工作?
予。
for (int k = 1; k < data.length; k++) {
if (data[k - 1] > data[k])
return false;
}
return true;
II。
for (int k = 0; k < data.length; k++) {
if (data[k] > data[k + 1])
return false;
}
return true;
III。
for (int k = 0; k < data.length - 1; k++) {
if (data[k] > data[k + 1])
return false;
else
return true;
}
return true;
(A)我只有 (B)II只有 (C)III只有 (D)I和II只有 (E)仅限I和III
解决方案是A,但是,我不明白为什么选择III不起作用。我的答案是E,解决方案是A。
答案 0 :(得分:1)
III是错误的,因为从第一次迭代开始return
(当k = 0时)
for (int k = 0; k < data.length - 1; k++) {
if (data[k] > data[k + 1]) // it either return true or false from the first iteration
return false; // from first iteration, this can return false
else
return true; // if the previous didn't return true, this for sure will return false
}
return true;
因此,不是比较整个数组元素,所以III是错误的