我正在编写代码以检查数组是升序还是降序。如果布尔值“升序”为true,则检查它是否升序。如果为假,则检查降序。我需要帮助检查数组是否降序…我有下面的代码来检查升序:
protected boolean isSorted(boolean ascending) { boolean result = false; if (ascending) { for (int i=0;i<data.length-1;i++) { if(data[i] < data[i+1]) { result = true; } else if(data[i] > data[i+1]) { result = false; } } } else { //code to check for descending order } }
if(“升序”检查)的第一部分是错误的,应该是:
if
for (int i = 0; i < data.length-1; i++) { if (data[i] > data[i+1]) { return false; } } return true;
相反,降序检查应为(并注意足以更改比较运算符的方向):
for (int i = 0; i < data.length-1; i++) { if (data[i] < data[i+1]) { return false; } } return true;
在这两种情况下,你必须跳出循环只要你找到一个 单一的 对不保持上升,或递降性质的数字,而只返回true退出循环之后。
true