氣泡排序(bubble sort)是一種交換排序,基本思想是:兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。
在最好的情況下,也就是數列本身是排好序的,需要進行 n - 1 次比較;在最壞的情況下,也就是數列本身是逆序的,需要進行 n(n-1)/2 次比較。因此氣泡排序總的時間複雜度是 o(n^2)。
public class sorttest ;
bubblesort(arr);
for (int x : arr)}/*
氣泡排序(從小到大)
*/private static void bubblesort(int arr)}}
}}
執行結果為:
1, 3, 4, 6, 8, 9, 11, 12, 14, 16,
如果對於乙個本身有序的序列,或則序列後面一大部分都是有序的序列,上面的演算法就會浪費很多的時間開銷,這裡設定乙個標誌flag,如果這一趟發生了交換,則為true,否則為false。明顯如果有一趟沒有發生交換,說明排序已經完成。
/*
優化後的氣泡排序(從小到大)
*/private static void bubblesort(int arr)
}len -- ;
}}
氣泡排序演算法 C 氣泡排序演算法排序詳解
氣泡排序是最簡單的排序方法,理解起來容易。雖然它的計算步驟比較多,不是最快的,但它是最基本的,初學者一定要掌握。c 氣泡排序演算法的例項源 一些排序方法的 集錦,該函式模板使用冒泡法對集合元素進行排序,引數說明 collection 集合物件,集合物件必須提供 操作。element 集合元素,該引數...
氣泡排序 氣泡排序演算法優化
常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...
排序演算法 氣泡排序
一.氣泡排序的過程 公升值排序 1.將第乙個記錄的關鍵字與第二個記錄的關鍵字進行比較,若key 1 key 2 則交換。然後比較第二個與第三個,依此類推,直到第n 1個與第n個比較為止,第一趟排序完後,記錄最大的關鍵字會被排在最後面。2.將記錄的前n 1個關鍵字進行第二趟比較交換,直到前n 1個中最...