氣泡排序的優化方法

2021-07-15 08:10:42 字數 1334 閱讀 8931

氣泡排序(bubble sort)是一種簡單的排序演算法。它的基本思路是對所有的相鄰記錄的關鍵字值進行比較,如果逆序則將其進行交換,最終達到有序化。
氣泡排序演算法的運作如下:

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較

設計**:

public class bubblesort ;

for (int i = 0; i < arr.length - 1; i++)

}system.out.print("第"+(i+1)+"次排序:");

for (int a = 0; a < arr.length; a++)

system.out.println("");

}system.out.print("最後結果:"+"\t");

for (int a = 0; a < arr.length; a++)

}}

執行結果:

改進的氣泡排序演算法:在氣泡排序過程中,一旦發現某一趟沒有進行交換操作,就表明此時排序記錄序列已經成為有序序列,氣泡排序就沒有必要進行下去了,應立即結束排序過程。這裡引入乙個判別欄位flag,**如下:

public class bubblesort_1 ;

for (int i = 0; i < arr.length - 1; i++)

}if (flag == 0) break;

system.out.print("第"+(i+1)+"次排序:");

for (int a = 0; a < arr.length; a++)

system.out.println("");

}system.out.print("最後結果:"+"\t");

for (int a = 0; a < arr.length; a++)

}}

執行結果:

與之前的執行結果進行比較:

顯然比較次數與移動次數分別有所下降。

C 氣泡排序 氣泡排序的優化

本文包含氣泡排序的三種實現方式 分別為氣泡排序初級版,公升級版,終級版 自己起的名字 使用時只要使用終極版就本以了,終級版為公升級版的優化版本 至於初極版和公升級版只是為了幫助理解 氣泡排序的時間複雜度為o n include include include include include incl...

氣泡排序以及氣泡排序的優化

很早接觸過氣泡排序法,但一直沒有真正的理解,只是為了記住而學習,今天又重新看了一下,其實氣泡排序法第一次排序會把最大的冒到最上面,第二次會把次大的泡冒到最大的後面,一次類推 另外在排序的次數上會逐漸減少。看 void bubble sort int a,int n 其實還可以優化一下,當發現沒有進行...

氣泡排序 優化後的氣泡排序

氣泡排序法 演算法原理 依次比較相鄰兩個元素的大小,若後面的比前面的小,則交換兩個元素的位置 對每一對相鄰元素作同樣的工作,從第一對到最後一對。進行一輪比較交換下來,最後的元素就會是最小的數了,這個數就不用參與後面的比較操作了 思路 遍歷陣列,對陣列中相鄰的兩個元素進行比較,如果需要公升序,前乙個資...