में n अधिकतम के सूचकांकों जाओ मैं मैं सूचकांक (अनुक्रमित) पांच अधिकतम तत्वों की कैसे मिल सकता है आकार 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
के मानों और सूचकांक को संरक्षित करना है। क्योंकि मैं सूचकांक के संरक्षण की जरूरत
मैं छँटाई नहीं लगता कि एक विकल्प है। असल में, यह इंडेक्स है जो मुझे विशेष रूप से चाहिए।
ऐसा लगता है कि आप जब आप पाते हैं अद्यतन करने के लिए कैसे पर पुनर्विचार करने की जरूरत है लग रहा है शीर्ष 5 में एक नया तत्व 5. –
[इस चर्चा] में कुछ इंडेक्स-संरक्षित दृष्टिकोण हैं (http://stackoverflow.com/questions/951848/java-array-sort-quick-way-to-get-a- सॉर्ट-सूची-ऑफ-इंडेक्स-ऑफ-ए-सरणी? rq = 1) –
(स्पष्ट होने के लिए, आपका दृष्टिकोण पहले से ही बहुत करीब है; आपको केवल उस तीसरे लूप को फिर से काम करने की आवश्यकता है।) –