1000 tane boyut dizim var. Beş maksimum öğenin dizinlerini (dizinlerini) nasıl bulabilirim? Sorunun sürekli tüm azami elemanlarına en yüksek maksimum değer atama olmasıdır biliyoruzJava dizisindeki n azami sayıları alın
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]);
}
:
kurulum kodu ve benim girişimi ile bir örnek
altında görüntülenir. Bunun nasıl düzeltileceğinden emin değilim çünkümyArray
'un değerlerini ve endekslerini korumalıyım.
Sıralamaların bir seçenek olduğunu düşünmüyorum çünkü endeksleri korumam gerekiyor. Aslında, özellikle ihtiyacım olan indeksler.
Bu size bulduğunda nasıl güncelleneceği yeniden gözden geçirmek gerekiyor gibi görünüyor En üst 5'te yeni bir öğe. –
[bu tartışma] 'da bazı dizin koruyucu yaklaşımlar var (http://stackoverflow.com/questions/951848/java-array-sort-quick-way-to-get-a- sıralı liste-of-bir-dizi-dizi? rq = 1) –
(Açık olmak gerekirse, yaklaşımınız sağa oldukça yakındır; sadece bu üçüncü döngüyü yeniden işlemeniz gerekir.) –