演算法分類(比較和非比較)
非線性時間比較類排序:通過比較來決定元素間的相對次序,由于其時間復雜度不能突破 O(nlogn),因此稱為非線性時間比較類排序
線性時間非比較類排序:不通過比較來決定元素間的相對次序,它可以突破基于比較排序的時間下界,以線性時間運行,因此稱為線性時間非比較類排序

排序演算法評價標準
時間復雜度
時間復雜度分為:最壞時間復雜度、平均時間復雜度、最好時間復雜度,主要反應的是執行程式的次數
空間復雜度
是對一個演算法在運行程序中臨時占用存盤空間大小的量度
穩定性
穩定性的意思是對于序列中鍵值(Key value)相同的元素,它們在排序前后的相對關系保持不變,對于 int 這樣的基本資料型別,穩定性基本上是沒有意義的,因為它的鍵值就是元素本身,兩個元素的鍵值相同他們就可以被認為是相同的,但對于復雜的資料型別,資料的鍵值相同,資料不一定相同,比如一個 Student 類,包括 Name 和 Score 兩個屬性,以 Score 為鍵值排序,這時候鍵值相同元素間的相對關系就有意義了,
總結就是經過排序之后,能使值相同的資料保持原順序中的相對位置不變
內排序
所有排序操作都在記憶體中完成,適用于資料規模不是特別大的情況
外排序
由于資料太大,因此把資料放在磁盤中,而排序通過磁盤和記憶體的資料傳輸才能進行
各排序演算法總結

名詞解釋:
n: 資料規模(即序列的長度)
k: “桶”的個數
In-place: 占用常數記憶體,不占用額外記憶體
Out-place: 占用額外記憶體
參考資料:
值得收藏的十大經典排序演算法
文章的內容/靈感都從下方內容中借鑒
-
【持續維護/更新 500+前端面試題/筆記】https://github.com/noxussj/Interview-Questions/issues
-
【大資料可視化圖表插件】https://www.npmjs.com/package/ns-echarts
-
【利用 THREE.JS 實作 3D 城市建模(珠海市)】https://3d.noxussj.top/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/296361.html
標籤:JavaScript
下一篇:介紹一種組件拆分方法
