🃏 插入排序法 (Insertion Sort) 核心概念

插入排序法是一種簡單且直觀的排序演算法,它的運作原理就像我們在整理手中的撲克牌:將尚未排序的牌,逐一與手中已排好順序的牌進行比對,並插入到正確的位置中。

🧩 三步核心流程

  1. 取牌 (Pick): 從「未排序區域」取出第一個數字。
  2. 比對 (Compare): 將此數字與左側「已排序區域」由後往前逐一比對大小。
  3. 插入 (Insert): 將較大的數字往後移騰出空間,直到找到合適位置將其「插入」。

⏱️ 效能與複雜度

  • 平均與最壞: O(n²),處理大量數據時較慢。
  • 最好情況: 當陣列「幾乎已排序」時,複雜度僅為 O(n),速度極快。
  • 特性: 佔用空間極小 O(1),且為穩定排序(數值相同者不會改變原本的相對位置)。

💡 為什麼它依然重要?

雖然它在大數據下不如快速排序,但因為演算法極簡、常數時間極小,許多現代進階演算法(如 Python 的 Timsort 或 C++ 的內建排序)在資料量切分到夠小時,底層都會自動切換成插入排序來提升最終效能!

插入排序法 (Insertion Sort)

回首頁

點擊「開始排序」觀察過程