Java方法来确认排序是否有效



我有一个100 int(从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;
}

但即使对于未排序的数组,它也会返回true。如何确保遍历数组中的每个对象

不幸的是,"如何检查数组是否已经排序"中提出的解决方案不起作用,并非所有int都是唯一的(有些是相同的(

假设它们首先按排序顺序排列。然后,一旦你发现没有的,就马上回来。遇到第一次故障时无需继续检查。这是一个简单的验证,不打印任何信息。如果按升序排序,则返回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,以便验证升序和降序。

最新更新