サイズ 1000 の配列があります。5 つの最大要素のインデックス (インデックス) を見つけるにはどうすればよいですか?
セットアップ コードと私の試みの例を以下に示します。
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
。
インデックスを保持する必要があるため、並べ替えはオプションではないと思います。実際、私が特に必要としているのは指標です。