排序演算法之氣泡排序

2022-09-13 11:27:06 字數 983 閱讀 1858

氣泡排序:通過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 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...