Java 确认排序工作的方法

Java method to confirm the sorting works

我有一个包含 100 个整数(从 0 到 99)的数组,并且我实现了一个 Comparable 接口。我现在的任务是确认排序有效(即使我知道它有效)。我的代码是:

public static boolean confirmSorting(Guppy[] sortedArrayOfGuppies) {
    boolean confirmed = false;
    int maximumID = Integer.MAX_VALUE;
    for (Guppy guppy : sortedArrayOfGuppies) {
        if (guppy.getIdentificationNumber() < maximumID) {
            maximumID = guppy.getIdentificationNumber();
            confirmed = true;
        }
    }
    return confirmed;
}

但它 returns 即使对于未排序的数组也是如此。我如何确保遍历数组中的 每个对象

不幸的是,How to check if array is already sorted中提出的解决方案不起作用,并非所有整数都是唯一的(有些是相同的)

假设它们首先按排序顺序排列。然后 return 一旦发现不是。无需在遇到第一次故障时继续检查。这只是一个简单的验证,不会打印任何信息。如果按升序排序,则为 returns true,否则为 false。它还假定 ID 号是 int.

public static boolean confirmSorting(Guppy[] sortedArrayOfGuppies) {
    for (int i = 0; i < sortedArrayOfGuppies.length-1; i++) {
        int id1 = sortedArrayOfGuppies[i].getIdentificationNumber();
        int id2 = sortedArrayOfGuppies[i+1].getIdentificationNumber();
        if (id1 > id2) {
            return false;
        }
    }
    return true;
}

请注意,您可能希望传入 comparatorflag,以便验证升序和降序排序。