氣泡排序的簡單優化

2021-09-13 11:49:23 字數 410 閱讀 8452

#includeint main();

int n=10;

for(int i=0;i時間複雜度:最壞情況:o(n^2)

最好情況:o(n)

平均複雜度:o(n^2)

思路:優化的地方就在於如果第一趟或者中間某一趟過後,陣列已經變得有序,那麼接下來不必再做迴圈了。每趟前利用乙個標記,flag=0;若有相鄰數的交換,置flag=1;每趟走完後判斷flag有無變化,若flag=0,意味著陣列已經變得有序,跳出迴圈;若flag=1,則繼續走下一躺。

#includeint main();

int n=10;

for(int i=0;i優化後的氣泡排序可以降低一些時間複雜度。

注:更多排序演算法請看大神(膜拜q…q)的總結,祝大家和我能早日掌握~~(>_<)~~ 十大經典排序演算法

排序一 氣泡排序的簡單優化

說明 很簡答的優化,卻有很多人容易在面試時候栽在這個簡單的問題上。氣泡排序 在面試中是很容易被問到的排序演算法,也是最簡單的排序演算法,當被問到,氣泡排序怎麼優化?很多人就懵了,冒泡還能優化?答案是可以的。但是,在對50000個隨機數進行測試中,發現,優化的冒泡和一般的冒泡在效能上幾乎一樣。於是又測...

氣泡排序法及簡單優化

鞏固自己學習,方便新手,把自己學習的寫出來,有錯誤的敬請指出。氣泡排序法我理解的三點 外迴圈 迴圈變數i,可以理解為對i位置排序。內迴圈 針對i位置,通過內迴圈,把大的數放在i位置。變數change 如果內迴圈不把change置為1說明排序已經結束。具體 如下 有注釋 include int mai...

C 氣泡排序 氣泡排序的優化

本文包含氣泡排序的三種實現方式 分別為氣泡排序初級版,公升級版,終級版 自己起的名字 使用時只要使用終極版就本以了,終級版為公升級版的優化版本 至於初極版和公升級版只是為了幫助理解 氣泡排序的時間複雜度為o n include include include include include incl...