Sorting Algorithm 排序演算法介紹

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

If you like this post, please click the ads on the blog or buy me a coffee. Thank you very much.


在本部落格的文章:Python 排序演算法範例 ( Sorting Algorithms in Python )有介紹一些常見的四種排序演算法:插入排序、選擇排序、合併排序、氣泡排序。除了這四種之外還有其他的嗎?

當然有!!!

例如:謝耳排序、快速排序、堆積排序、基數排序、雞尾酒排序等。那排序演算法到底在做什麼?!又為什麼會有這麼多種的演算法呢?!

排序是要將東西依照某種規則放置,例如將一個數列由小排到大,或是將容器依照體積由大排到小。在電腦科學裡,排序是將元素依照數值大小或是字典順序來排列。但因為考量到排序的速度(計算量),於是科學家們想出了各式各樣的排序演算法,有些排序演算法適用於資料量小的情境,有些排序演算法適用於資料量大的情境。對於排序演算法的選擇可從排序方法是用比較式的、還是非比較式的,以及時間複雜度與實際資料分布的狀況來選擇。

在  https://github.com/TheAlgorithms 上有以不同的程式語言實作各式各樣的演算法,例如 Python 排序演算法Java排序演算法C語言排序演算法、等。此外若想看一些常見演算法的動畫,可參考【會動的演算法】一書的動畫網址:https://www.flag.com.tw/activity/F2708/exercise/books/