1、基本思想
將陣列劃分為有序區和無序區,不斷通過交換將較大元素移至無序區尾。若在某一趟排序中未發生交換事件時,或無序區已全部排序完時,則排序完畢。
2、最優情況:
(待排序陣列是正序)只用比較一次就行了。複雜度o(n)。
最差情況:
(待排序陣列是逆序)要比較n^2次才行,複雜度o(n^2)。
3、氣泡排序屬於穩定的排序。
最壞時間複雜度o(n^2),最好時間複雜度o(n),平均時間複雜度o(n^2)。空間複雜度o(1)。
4、**
將elem陣列按遞增進行氣泡排序
void bubblesort(int *elem, int elemlen)
bool i***change = false;//標記是否有交換資料操作
int tempelem = 0;//交換元素時,需要用到的臨時中間變數
for(int i = 0; i < elemlen; i++)
}if(!i***change)}}
開心IT面試題 希爾排序
1 基本思想 希爾排序又稱增量縮小排序,是對直接插入排序的一種改進,分組插入方法。先將序列按增量劃分為元素個數相同的若干組,使用直接插入排序法進行排序,然後不斷縮小增量直至為1,最後使用直接插入排序完成排序。2 假設待排序陣列為 2 6 1 5 3 8 9 4 增量取4 2和1 第一趟待排序陣列可分...
面試題目 氣泡排序
氣泡排序是很基礎的一種排序,雖然簡單但是也好久沒看了,乍一下沒過腦子還是容易出錯。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列...
面試題 氣泡排序 Python
python提供互換值 a 5b 3a,b b,a面試題 基本思路 迴圈遍歷列表 每一項都和後面的專案進行比較,如果左邊比右邊大,就互換位置 迴圈結束後,最大的一定在最右邊 此迴圈多次執行,每次都把最大的放到最後 nums 45 155,78 4588,97 5421 8547,5 61,1 比較次...