คำอธิบายอัลกอริทึม: สำหรับบันทึก N ที่กำหนดทั้งสองระเบียนที่อยู่ติดกันจะถูกเปรียบเทียบตามลำดับจากบันทึกแรก เมื่อบันทึกปัจจุบันมากกว่าบันทึกที่ตามมาตำแหน่งการแลกเปลี่ยนจะดำเนินการ หลังจากการเปรียบเทียบและการแลกเปลี่ยนหนึ่งรอบบันทึกที่ใหญ่ที่สุดในบันทึก N จะอยู่ที่ตำแหน่งที่ n; จากนั้นการเปรียบเทียบรอบที่สองจะดำเนินการในบันทึกก่อนหน้า (N-1); กระบวนการทำซ้ำจนกว่าจะมีเพียงหนึ่งระเบียนที่เหลือสำหรับการเปรียบเทียบ
การเรียงลำดับฟองนั้นเข้าใจง่ายมาก การเรียงลำดับจากขนาดเล็กถึงใหญ่เป็นตัวอย่างแต่ละรอบของการเรียงลำดับพบค่าสูงสุดในลำดับที่ไม่ได้เรียงลำดับและวางไว้ในตอนท้าย
สมมติว่าความยาวของอาร์เรย์คือ n:
(1) เปรียบเทียบข้อมูลที่อยู่ติดกันทั้งสองด้านหน้าและด้านหลัง หากข้อมูลก่อนหน้านี้มากกว่าข้อมูลถัดไปให้แลกเปลี่ยนข้อมูลทั้งสอง
(2) หลังจากผ่านข้อมูลที่ 0 ของข้อมูลอาร์เรย์ไปยัง N-1 หนึ่งครั้งข้อมูลที่ใหญ่ที่สุดจะ "จม" ไปยังตำแหน่ง N-1 ของอาร์เรย์
(3) n = n-1 หาก N ไม่ใช่ 0 ให้ทำซ้ำสองขั้นตอนก่อนหน้านี้มิฉะนั้นการเรียงลำดับจะเสร็จสมบูรณ์
ข้างต้นเป็นแนวคิดพื้นฐานของการเรียงลำดับฟองและคุณสามารถเขียนโค้ดได้อย่างรวดเร็วตามคำจำกัดความนี้
การเรียงลำดับแพ็คเกจ;/*** การเรียงลำดับฟอง* เฉลี่ย o (n^2), ที่ดีที่สุด o (n), ที่เลวร้ายที่สุด o (n^2); ความซับซ้อนของพื้นที่ o (1); มั่นคง; ง่าย * @author Zeng * */Bubblesort คลาสสาธารณะ {โมฆะคงที่สาธารณะ bubblesort (int [] a) {int n = a.length; int temp = 0; สำหรับ (int i = 0; i <n; i ++) {สำหรับ (int j = 0; j <ni-1; j ++) A [j+1]; a [j+1] = temp;}}}} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int [] a = {49,38,65,97,76,13,27,50,50}; bubblesort (a); สำหรับ (int j: a) system.out.print (j+"");}}สรุป
ข้างต้นคือทั้งหมดที่เกี่ยวกับการใช้งานการเรียงลำดับฟอง Java อย่างง่ายและฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!