जावा बुलबुला-तरह की जाँच नहीं पिछले पाश के माध्यम से

0

सवाल

मैं कोशिश कर रहा हूँ सॉर्ट करने के लिए कोई ArrayList लेकिन एक दीवार मारा । नीचे, मैं एक getId() समारोह है कि retrieves आईडी के एक सदस्य है. मैं करने के लिए चाहते हैं को सॉर्ट ArrayList द्वारा सदस्य आईडी है । मैं जाँच की है एक afew अच्छे लेख पर इस और कार्यान्वित निम्न है :

ई.जी (पहले की तरह) 11 22 33 44 55 66 77 88 99 00

ई.जी (के बाद प्रकार) 00 11 22 33 44 55 66 77 88 99

Member temp;

for (int i = 0; i < members.size(); i++) {
    Member s = members.get(i);
    System.out.println("S: "+s.getId());
            
    for (int j=0; j < members.size()-1; j++) {
        Member t = members.get(j+1);
        System.out.println("T: "+t.getId());
                
        if (s.getId() > t.getId()) {
        temp = s;
        s = t;
        t = temp;
        }
     }
  }
}

मैंने किया था के प्रिंटआउट के बयान के ऊपर का पता लगाने के लिए मूल कारण है, लेकिन अभी भी पता लगाने की कोशिश कर त्रुटि ।

bubble-sort java
2021-11-24 04:07:41
1

सबसे अच्छा जवाब

2

कोड के लिए बदलना गलत है:

if (s.getId() > t.getId()) {
   temp = s;
   s = t;
   t = temp;
}

यहाँ आप केवल स्वैप s के साथ t, लेकिन डेटा अंतर्निहित members प्रभावित नहीं कर रहे हैं. सही एक:

for (int i = 0; i < members.size() - 1; i++) {
     for (int j = 0; j < members.size() - i - 1; j++) {
         Member s = members.get(j);
         Member t = members.get(j+1);
         if (s.getId() > t.getId()) {
             Collections.swap(members, j, j+1);
         }
    }
}
2021-11-24 04:35:16

धन्यवाद आप के लिए संकेत दिए गए हैं. मुझे लगता है कि मैं वहाँ हो रही है. मैं का उपयोग कर रहा हूँ एस = छात्रों.सेट(मैं, टी); और इसकी लगता है अद्यतन करने के लिए अच्छी तरह से लेकिन हालत यह अद्यतन सभी मूल्यों के लिए 1010 बजाय.
Enthu

आह, मैं देख रहा हूँ कि हम का उपयोग कर सकते हैं संग्रह.स्वैप जो मैं था के बारे में पता नहीं. आप व्याख्या कर सकते हैं एक बिट से अधिक सदस्यों पर.size() - 1 और सदस्य हैं । आकार() - मैं - 1. नहीं है हालत एक के रूप में ही प्रकाशित किया गया था या मैं कर रहा हूँ याद आ रही है?
Enthu

@Enthu मैं डर रहा हूँ आप के बारे में कुछ गलतफहमी बुलबुला तरह. तुलना और केवल के बीच होता आसन्न तत्वों.
chenzhongpu

धन्यवाद @chenzhongpu. मैं इस पर और अधिक पढ़. बहुत बहुत धन्यवाद सहायता के लिए! यह वास्तव में मेरे लिए उपयोगी.
Enthu

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में