【发布时间】:2021-10-02 11:55:10
【问题描述】:
我必须使用排序算法对数组进行排序,并显示这些值最初放置在哪个索引中。 (查看预期结果与实际结果:https://i.imgur.com/GpIpkPE.png)。
我设法对值进行了正确排序。但是索引是正确的?这让我很困惑。
public static void sortNumbers(double[] averageNotes) {
for (int i = 0; i < averageNotes.length; i++) {
double max = averageNotes[i];
int maxId = i;
for (int j = i+1; j < averageNotes.length; j++) {
if (averageNotes[j] > max) {
max = averageNotes[j];
maxId = j;
}
}
double temp = averageNotes[i];
averageNotes[i] = max;
averageNotes[maxId] = temp;
System.out.println(averageNotes[i] + " (" + maxId + ")");
}
非常感谢任何帮助。谢谢。
【问题讨论】:
-
你有什么限制吗?您可以创建相同大小的“int”数组,其中 value = index 以镜像排序操作吗?
-
正如我所见,当您将 i 元素与 j 交换时,您不会存储 i 的初始位置。试试这个:[1.2,1.3,1.4,1.0]
-
@TimurEfimov 我不能使用 Array.sort,我必须使用排序算法(就像我刚刚做的那样)。我可以使用基本的 java 来解决这个问题。是的,你提议的应该没问题。