จาวางฟอง-แบบไม่ลังตรวจสอบสุดท้ายเล่น

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

รหัสสำหรับ swapping คือผิด:

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

อยู่ที่นี่เพียงแต่คุณเปลี่ยน s กับ tแต่ข้อมูล underlying 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

ขอบคุณสำหรับชี้ประเด็น. ฉันคิดว่าฉันกำลังทำอยู่ ฉันใช้ s=นักเรียนตั้งค่า(ฉัน,ที);และมันดูเหมือนจะปรับปรุงงั้นแต่งเงื่อนไขทำให้มันปรับปรุงทั้งหมดค่าต่างๆที่มีอายุกว่า 1010 แทน
Enthu

อ้อฉันเห็นว่าเราสามารถใช้คนจะได้ปลอดภัยเปลี่ยนซึ่งฉันไม่ได้บเรื่องความสัมพันธ์ใดๆ คุณสามารถอธิบายได้อีกหน่อยได้มัยกลับมาในสมาชิกขนาด()-1 และสมาชิกขนาด()-ฉันอ 1 เลย ไม่ใช่เงื่อนไขเดียวกันเป็นคนโพสต์หรือฉันหายไปงั้นเหรอ?
Enthu

@Enthu ฉันกลัวว่าคุณมีความเข้าใจผิดบางอย่างเรื่องฟองนั้น เปรียบเทียบแล้วเปลี่ยน เดียวที่ เกิดขึ้นระหว่างย้ายองธาตุหลัก-แล้วอีก
chenzhongpu

ขอบคุณ@chenzhongpu. ฉันจะอ่านมากกว่าเรื่องนี้ ขอบคุณมากสำหรับความช่วยเหลือ! มันช่วยได้มากจริงๆสำหรับฉัน
Enthu

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่