1 2 氣泡排序

2022-09-07 00:18:21 字數 1131 閱讀 6641

核心思想在於「每次比較兩個相鄰的元素,如果它們順序錯誤就把它們交換過來」,那什麼是所謂順序錯誤呢?

比如,我們想要進行從大到小的排序,則把小的數字往

比如有五個數字12 35 99 18 76 ,我們試圖將它們從大到小排序

1.我們首先比較第一12和第二35,顯然35大。依據核心思想,替換二者。那麼現在五個數的順序就是: 351299 18 76

2.接著我們去比較現在的第二位12和第三位99,顯然12又是更小的那個數,現在順序變為35 991218 76

3.重複上面的步驟直到比較完最後一位數字,最後我們得到的順序是35 99 18 7612,我們可以發現,「一趟」下來之後,我們將最小的數字排序到了最後面,看到這"冒泡"的說法已經被體現出來了。

4.重複上述步驟,依次找到「第二小的」,「第三小的」...最終完成我們的排序。氣泡排序,每一趟只可以確定將乙個數歸位

總結:有n個數字進行排序,只需要將n-1個數歸位,進行n-1趟操作

int a[100] ; 

int i,j,t,n ;

//輸入乙個數n,表示下面有n個數字

scanf("%d",&n);

for(i = 1 ; i <= n ; i++)

//!下面就是氣泡排序的核心演算法了

for(i = 1 ; i <= n-1 ; i++)}}

//這樣就完成了氣泡排序了

//下面輸出試試

for(i = 1 ; i<= n ;i++)

上述**中,在迴圈裡。i代表的是我們要執行的冒泡的最大次數,如前文所說n個數字的排序,我們進行n-1趟冒泡,而j則是進行每一輪的遍歷搜尋

實質上這個過程還可以被優化,比如說檢查是否已經排序完成,檢查每輪每趟的任務是否不用進行等等。這樣的優化雖然不會降低複雜度,但會在一下情況下節約時間、提高效率

這裡我們只是介紹冒泡,就不再細說了

氣泡排序 排序 氣泡排序

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

氣泡排序 氣泡排序法

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

選擇排序,氣泡排序,雙向氣泡排序

氣泡排序和選擇排序是最基本的排序方式,要掌握。氣泡排序重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。選擇排序每一趟從待排序的 資料元素 中選出最小 或最大 的乙個元素,順序放在已排好序的數列的...