排序算法總結

排序算法作爲基礎算法,相信大家在學校上C語言課程的時候都接觸過一些。筆者這裏暫時將之前寫的排序算法博客簡單的總結一下。

比較排序算法

以上算法中的部分算法有個特點,即

在排序的最終結果中,各元素的次序依賴於它們之間的比較。

這類排序算法稱之爲比較排序算法。其中上述排序算法中,比較排序算法有冒泡排序、選擇排序、插入排序、歸併排序、堆排序、快速排序。而計數排序、計數排序與桶排序則是通過計算而非比較來確定排序順序的,這三種排序算法具有線性時間複雜度。

穩定性

排序算法的穩定性指的是假設待排序數組中有兩個元素的值相等,若排序後這兩個數字的相對位置沒有發生改變,則排序算法就是穩定的;否則就是不穩定的。筆者個人覺得,排序算法穩定性的含義在基數排序算法中能夠更好地體現。

  • 穩定排序算法:冒泡排序、插入排序、歸併排序、計數排序、基數排序。
  • 不穩定排序算法:堆排序、快速排序、希爾排序(未講)、選擇排序。

未完待續……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章