合併排序法是一種分治法(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),在合併過程中保持相等元素的相對順序。
點擊「開始排序」觀察合併排序的過程。紅色代表正在比較,紫色代表正在分割,綠色代表已經排序完成。