氣泡排序:通過n-1輪外層迴圈,每第 i 輪外層迴圈都會有乙個n-1-i輪內層迴圈,且每一輪內層迴圈將無序序列的最大或最小的乙個數,需要通過兩兩對比、交換的方式(可能存在多次位置交換)逐漸冒泡移動、增加到有序序列中。直到無序序列只剩最後乙個最大或最小的數,預設進入有序序列,排序結束。
1//氣泡排序
23 const numberarr = [2, 2, 1, 6, 52, 4, 5, 8, 9, 17, 3];45
/**6* 公升冪排序,進行n-1次排序,第n輪因為前面n-1個元素都排好序,只剩乙個元素不需要比較排序
7* 每一輪比較元素,不需要比較已經排序好的元素。所以減掉了很多重複排序
8* @param arr 未排序的陣列
9* @returns arr 已經排序好的陣列
10*/
11function
buddle_arr_asc(arr) 19}
20}21return
arr;22}
2324
25/**26
* 降冪排序,進行n-1次排序,第n輪因為前面n-1個元素都排好序,只剩乙個元素不需要比較排序
27* 每一輪比較元素,不需要比較已經排序好的元素。所以減掉了很多重複排序
28* @param arr 未排序的陣列
29* @returns arr 已經排序好的陣列
30*/
31function
buddle_arr_desc(arr) 39}
40}41return
arr;
42 }
最壞情況——逆序:需要進行n(n-1)/2次比較,n-1次排序,n(n-1)/2次記錄的移動,時間複雜度為o(n^2)。
最好情況——正序:需要進行n-1次比較,0次排序,0次移動,時間複雜度為o(n)。
穩定性:氣泡排序交換的是相鄰的兩個元素,如果兩個元素相等,是不會交換兩個元素的位置的,所以氣泡排序是穩定的。
排序演算法之氣泡排序
參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...
排序演算法之氣泡排序
對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...
排序演算法之氣泡排序
氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...