java - 检查数组的降序

标签 java arrays algorithm

我正在编写代码来检查我的数组是按升序还是降序排列。如果 boolean 值“升序”为真,那么我会检查它是否在升序。如果它是假的,那么我检查降序。我需要帮助检查数组是否降序...我有检查升序的代码,写在下面:

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 的第一部分(“升序”检查)是错误的,应该是:

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

关于java - 检查数组的降序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18005437/

相关文章:

java.lang.NoClassDefFoundError : org/apache/http/ssl/TrustStrategy, 尽管它存在于类路径中

Java 与 Python HMAC-SHA256 不匹配

java - Java ArrayList/String/atomic变量读取线程安全吗?

c - 指针问题,数组第二个位置与另一个数组中的第一个位置相同

c - 将变量分配给数组元素时出现问题

algorithm - 图同构启发式解决方案

java - 有没有办法清除 Spring Boot RestController 中的 "consumes = MediaType"?

arrays - yq (GO/Mike Farah) 递归统一所有数组

c# - 如何对大多数排序的数组进行排序

algorithm - 圆周上每一点的坐标