วิธีการเรียงลำดับฟอง : บันทึกด้วยคำหลักที่เล็กกว่านั้นเป็นเหมือนฟองที่ลอยขึ้นมาหลังจากนั้นอีกและบันทึกด้วยคำหลักที่ใหญ่กว่านั้นก็เหมือนกับหินที่กำลังจมและหนึ่งในหินที่ใหญ่ที่สุดจมลงไปด้านล่างในแต่ละการเดินทาง
สาระสำคัญของอัลกอริทึม: (ค่าสูงสุดคือจุดสำคัญมันจะต้องนำไปสู่จุดสิ้นสุดดังนั้นลูปจึงเป็นเช่นนี้) ทุกครั้งที่การเปรียบเทียบทำจากตำแหน่งแรกไปด้านล่างค่าต่ำสุดจะเพิ่มขึ้นหนึ่งครั้ง และความก้าวหน้าบิตสุดท้าย (เช่นตัวเลขสุดท้ายเพิ่งถูกกำหนดโดยค่าสูงสุดที่ไม่ได้เข้าร่วมในการเปรียบเทียบอีกต่อไปจำนวนการเปรียบเทียบจะลดลง 1)
ความซับซ้อน: ความซับซ้อนของเวลา O (N2), ความซับซ้อนของอวกาศ o (1)
ซอร์สโค้ด Java (ต้องทำงานสำเร็จแล้วต้องใช้คลาสวันที่)
การคัดลอกรหัสมีดังนี้:
โมฆะแบบคงที่สาธารณะ Bubblesort (วันที่ [] วัน) {
int len = days.length;
อุณหภูมิวันที่;
สำหรับ (int i = len-1; i> = 1; i--) {
สำหรับ (int j = 0; j <i; j ++) {
ถ้า (วัน [j]. compare (วัน [j + 1])> 0) {
อุณหภูมิ = วัน [j + 1];
วัน [j + 1] = วัน [j];
วัน [j] = อุณหภูมิ;
-
-
-
-
วันที่คลาส {
int ปี, เดือน, วัน;
วันที่ (int y, int m, int d) {
ปี = y;
เดือน = M;
วัน = d;
-
INT Public Compare (วันที่) {
ส่งคืน> วันที่?
: วันที่> วันที่ 1: เดือน <date.month?
: วันที่> วันที่?
-
Public Void Print () {
System.out.println (ปี + "" + เดือน + "" + วัน);
-
-
การคัดลอกรหัสมีดังนี้:
Package Testsortalgorithm;
Bubblesort ระดับสาธารณะ {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
int array [] = {5, 6, 8, 4, 2, 4, 9, 0};
Bubblesort (อาร์เรย์);
สำหรับ (int i = 0; i <array.length; i ++) {
System.out.println (Array [i]);
-
-
Void Bubblesort สาธารณะ (int array []) {
อุณหภูมิ int;
สำหรับ (int i = array.length-1; i> 0; i--) {
สำหรับ (int j = 0; j <i; j ++) {
if (array [j]> array [j + 1]) {
อุณหภูมิ = อาร์เรย์ [j];
อาร์เรย์ [j] = อาร์เรย์ [j + 1];
อาร์เรย์ [j + 1] = อุณหภูมิ;
-
-
-
-
-