一尘不染

检查数组降序

algorithm

我正在编写代码以检查数组是升序还是降序。如果布尔值“升序”为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
    }
}

阅读 176

收藏
2020-07-28

共1个答案

一尘不染

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退出循环之后。

2020-07-28