像冒泡一樣,從前到到後遍歷陣列,前後做對比,前面比後面大的則交換(公升序)
void swap(int* num1,int*num2)
void bullursort(int* list,int len)}}
}
優化一、k < len-1-i,前面已經排好序的就不用再比較了
優化
二、如果一次排序過程都不用交換了,說明後面的都排序好了,就提前退出遍歷,引入flag標誌來判斷
void swap(int* num1,int*num2)
void optimizebullursort(int* list,int len)
}if(!flag)
}}
氣泡排序演算法 演算法學習筆記
最近準備換工作,然後面了幾家公司,收到了乙份還算滿意的offer。面試過程中發現大公司都會喜歡面一些演算法題。對於經常關注演算法的人而言可能並不難,因為都是一些基礎題,比如快速排序 氣泡排序 二叉樹等等。但是對於平時工作從不關心演算法的人而言那可真的夠頭大的。今天覆習了氣泡排序,順便記錄下。也提醒下...
快速排序演算法(C C 演算法學習過程記錄)
一 快速排序思想 快速排序是氣泡排序的改善演算法,氣泡排序只能在相鄰的兩個值之間進行比較交換,這樣交換的次數比較多的情況下,效率比較低,而快速排序的思想是分治和遞迴的思想,取定陣列其中乙個值作為基數,將待排序陣列排序分為左邊小於基數的陣列,右邊大於基數的思想 假設是是公升序排序,遞迴方法後面講解 然...
經典排序演算法學習筆記一 氣泡排序
資料結構 陣列 最差時間複雜度 o n 2 最優時間複雜度 o n 平均時間複雜度 o n 2 最差空間複雜度 總共o n 需要輔助空間o 1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。針對所...