演算法圖鑑
演算法 · 9 個細項

Sorting排序

排序是最常被呼叫的演算法,也是理解分治、穩定性、下界證明的最佳教材。學完你會知道語言內建的 sort 為什麼那樣設計,以及什麼時候可以突破 n log n。

為什麼要學 Sorting

現實中的應用
電商與排行榜

依價格、評分、銷量排列商品,或每分鐘更新的遊戲排行榜。資料一大,O(n²) 和 O(n log n) 的差距就是能不能即時回應。

→ 對應課程:Quick Sort
資料庫的 ORDER BY 與外部排序

資料庫背後就是排序演算法;記憶體放不下時用的是合併排序的外部版本,一次只讀一塊進來。

→ 對應課程:Merge Sort
排序是很多演算法的前置

二分搜尋、去除重複、合併時間區間、找中位數,都先假設資料有序。排好序,後面的問題會突然變簡單。

→ 對應課程:Insertion Sort
整數資料的特殊情況

年齡、分數、郵遞區號這種範圍固定的整數,不用比較也能排,這就是計數排序與基數排序能突破 n log n 的原因。

→ 對應課程:Counting Sort

細項

9