← 返回学科目录

归并排序:合并两个有序数组

可视化教学动画 - 理解归并排序的核心步骤

数组 A
数组 B
结果数组 C
i
j
k
速度: 中速
点击"下一步"开始合并过程。初始化:i=0, j=0, k=0
0
指针 i (数组A)
0
指针 j (数组B)
0
指针 k (结果C)
function merge(arr1, arr2) {
let i = 0, j = 0, k = 0;
let result = [];
// 步骤1: 比较并合并
while (i < arr1.length && j < arr2.length) {
if (arr1[i] <= arr2[j]) {
result[k] = arr1[i];
i++;
} else {
result[k] = arr2[j];
j++;
}
k++;
}
// 步骤2: 复制剩余元素
while (i < arr1.length) {
result[k] = arr1[i];
i++; k++;
}
while (j < arr2.length) {
result[k] = arr2[j];
j++; k++;
}
return result;
}
数组A元素 数组B元素 合并结果