面試題目 氣泡排序

2021-08-19 13:47:01 字數 826 閱讀 5717

氣泡排序是很基礎的一種排序,雖然簡單但是也好久沒看了,乍一下沒過腦子還是容易出錯。

它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。

這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端(末端),故名「氣泡排序」。

每輪冒泡的結果是,已經排好序的元素(最大或最小)會浮到數列的最頂端。

所以下一次氣泡排序的操作範圍應該減小,截止到上一次的最頂端元素之前。

所以我們應該用兩層迴圈來做,內層迴圈我們進行數列兩兩之間的元素比較。

外層迴圈,我們用來控制冒泡的總次數(多少趟)也可以理解為截至的終點的動態控制。

void bubblesort(int a, int

len)}}

}//其他的寫法 更多的寫法請自己嘗試

for (i =0 ; i < len; i++)

for(j =0; j < len - i-1; j++)

for (i = len; i >0; i--) //今天回來檢查發現這個地方竟然寫錯了

for (j =0; j < i-1; j++)

設定乙個標誌flag, 如果這一趟(某一輪迴圈)發生了交換,設定為true;

如果有一趟(一輪)沒有發生交換

說明排序已經排好,設定為false

void bubblesort(int a, int

len)

}if(flag)

break;

}}

開心IT面試題 氣泡排序

1 基本思想 將陣列劃分為有序區和無序區,不斷通過交換將較大元素移至無序區尾。若在某一趟排序中未發生交換事件時,或無序區已全部排序完時,則排序完畢。2 最優情況 待排序陣列是正序 只用比較一次就行了。複雜度o n 最差情況 待排序陣列是逆序 要比較n 2次才行,複雜度o n 2 3 氣泡排序屬於穩定...

面試題 氣泡排序 Python

python提供互換值 a 5b 3a,b b,a面試題 基本思路 迴圈遍歷列表 每一項都和後面的專案進行比較,如果左邊比右邊大,就互換位置 迴圈結束後,最大的一定在最右邊 此迴圈多次執行,每次都把最大的放到最後 nums 45 155,78 4588,97 5421 8547,5 61,1 比較次...

面試題之(氣泡排序)

什麼是氣泡排序呢?其原理就是依次比較相鄰的兩個值,如果後面的比前面的小,則將小的排到前面。依照這個規則進行多次並且遞減的迭代,直到順序正確。請看下面引用網上的動態圖可以更直觀的了解氣泡排序的乙個工作原理 請看下面的 是如何實現的氣泡排序 var examplearr 2,3,1,5,4 functi...