1. 操作原理
合併排序法採用分治策略,將陣列不斷拆分成更小的子陣列,直到每一部分僅包含一個元素,再逐一合併成有序序列。
重點:合併排序是一種穩定、分治的方法。
核心流程為:分割陣列、遞歸排序、合併結果,適合處理大型資料集。
4. 偽代碼及實作範例
function mergeSort(arr) {
if (arr.length <= 1) return arr;
const middle = Math.floor(arr.length / 2);
const left = mergeSort(arr.slice(0, middle));
const right = mergeSort(arr.slice(middle));
return merge(left, right);
}
function merge(left, right) {
const result = [];
let i = 0, j = 0;
while (i < left.length && j < right.length) {
if (left[i] <= right[j]) {
result.push(left[i++]);
} else {
result.push(right[j++]);
}
}
return result.concat(left.slice(i)).concat(right.slice(j));
}