我有一个大小为 1000 的数组。如何找到五个最大元素的索引(索引)?
下面显示了一个带有设置代码的示例和我的尝试:
Random rand = new Random();
int[] myArray = new int[1000];
int[] maxIndices = new int[5];
int[] maxValues = new int[5];
for (int i = 0; i < myArray.length; i++) {
myArray[i] = rand.nextInt();
}
for (int i = 0; i < 5; i++) {
maxIndices[i] = i;
maxValues[i] = myArray[i];
}
for (int i = 0; i < maxIndices.length; i++) {
for (int j = 0; j < myArray.length; j++) {
if (myArray[j] > maxValues[i]) {
maxIndices[i] = j;
maxValues[i] = myArray[j];
}
}
}
for (int i = 0; i < maxIndices.length; i++) {
System.out.println("Index: " + maxIndices[i]);
}
我知道问题在于它不断地将最高最大值分配给所有最大元素。我不确定如何解决这个问题,因为我必须保留myArray
.
我不认为排序是一种选择,因为我需要保留索引。事实上,这是我特别需要的索引。