← 返回首頁

合併排序法 (Merge Sort) 教學

📝 簡述原理

合併排序法是一種分治法(Divide and Conquer)的排序演算法。它的核心思想是:將欲排序的數列分成兩個均等的子序列,分別對兩個子序列進行排序,然後將排序好的兩個子序列合併成一個有序的序列。

這個過程會遞迴地進行,直到子序列只剩一個元素為止(此時已排序)。然後依層向上合併,最終得到完全排序的序列。合併排序法的優點是時間複雜度穩定,且適合大規模數據排序。

📊 複雜度分析

情境 時間複雜度 (Time Complexity) 空間複雜度 (Space Complexity)
最佳情況 (Best Case) O(n log n) O(n) - 需要額外空間進行合併
平均情況 (Average Case) O(n log n)
最壞情況 (Worst Case) O(n log n) - 時間複雜度恆定

* 穩定性 (Stability):穩定 (Stable),在合併過程中保持相等元素的相對順序。

🎮 模擬實作

點擊「開始排序」觀察合併排序的過程。紅色代表正在比較,紫色代表正在分割,綠色代表已經排序完成。