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;
}
请注意,您可能希望传入 comparator
或 flag
,以便验证升序和降序排序。
我有一个包含 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;
}
请注意,您可能希望传入 comparator
或 flag
,以便验证升序和降序排序。