它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
**git位址
public class bubblesort ;
bubblesort(arr);
sortutil.printarr(arr);
}/**
* 簡單氣泡排序
* @param arr
*/private static void bubblesort(int arr){
for (int i = 0; i < arr.length; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]時間複雜度分析:
經過0.5n²+0.5n次迴圈完成排序,忽略常數項和低次項,時間複雜度為o(n²)
額外申請的變數僅max,因此空間複雜度為o(1)
最好情況:
整體有序,比較n-1次,時間複雜度o(n)
最壞情況:
整體逆序,比較(n-1)*n/2次,時間複雜度o(n²)
穩定性:
穩定,氣泡排序會依次和後一位比較交換,保證了2個相等的數的相對位置
資料結構和演算法 排序演算法 氣泡排序
排序演算法 排序演算法,我們想要把線性表中的無序序列,排成有序序列,的演算法,就是排序演算法,排序演算法的穩定性 舉例 假設對下面的元組要以他們的第乙個數字來排序。4,1 3,1 3,7 5,6 如果你排序之後,3,1 3,7 和原來的順序一樣,就是穩定的,否則就是不穩定的,3,1 3,7 4,1 ...
資料結構 氣泡排序演算法
1 氣泡排序 氣泡排序之所以叫氣泡排序,是因為它每一種元素都像小氣泡一樣根據自身大小一點一點往陣列的一側移動。基本思想是假如需要排序的陣列元素有n個,則進行n 1輪比較,第k輪比較中元素的比較次數為n k次,演算法的複雜度準確界為o n2 演算法步驟如下 比較相鄰的元素。如果第乙個比第二個大,就交換...
資料結構 排序 氣泡排序演算法
氣泡排序 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序對n個專...