iOS排序 氣泡排序

2021-09-26 02:55:03 字數 635 閱讀 9893

氣泡排序演算法的原理如下:

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

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

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

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

還是簡單點來說吧:

首先我們需要雙層迴圈,外層迴圈控制排序趟數,記憶體迴圈控制每趟比較次數以及是否需要交換位置

我們先不關心是否交換位置,我們內層迴圈每次比較都是取array[j] 和array[j+1]相比較.根據比較結果來判斷是否交換位置.

時間複雜度

若陣列的初始狀態是正序的(我們需要的順序),一趟掃瞄即可完成排序.所需的比較次數:n-1 移動次數:0,此時是氣泡排序最好的時間複雜度.

若初始陣列是逆序的,需要進行n-1趟排序.每趟排序要進行n-i次的比較(1≤i≤n-1),且每次比較都必須移動記錄三次來達到交換記錄位置.在這種情況下,比較次數為:n(n-1)/2,移動次數為n(n-1)/2;此時為氣泡排序最壞的時間複雜度

氣泡排序 排序 氣泡排序

既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...

氣泡排序 氣泡排序法

冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...

排序 氣泡排序

氣泡排序 氣泡排序 bubble sort 是一種 電腦科學 領域的較簡單的 排序演算法 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。原理是臨近的數字兩兩進行比較,按照從小到大或者從大到小...