【发布时间】:2021-01-26 06:53:46
【问题描述】:
我有一个包含 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;
}
但即使对于未排序的数组,它也会返回 true。如何确保遍历数组中的每个对象?
很遗憾,How to check if array is already sorted 中提出的解决方案不起作用,并非所有 int 都是唯一的(有些是相同的)
【问题讨论】:
-
它确实遍历了整个数组;问题是当你发现任何比前一个更小的项目时,你设置了
confirmed = true,而不是检查它们是否都是。
标签: java sorting comparable