合并两个有序数组 js
时间: 2023-09-13 14:09:34 浏览: 51
要合并两个有序数组,可以使用双指针的方法。假设我们有两个有序数组 `arr1` 和 `arr2`,并且分别有长度 `m` 和 `n`。
我们可以定义两个指针 `i` 和 `j`,分别指向 `arr1` 和 `arr2` 的开头。然后,比较 `arr1[i]` 和 `arr2[j]` 的大小,并将较小的值添加到新的结果数组中。然后,将指针向后移动一位。重复这个过程,直到遍历完其中一个数组。
当其中一个数组遍历完后,我们只需要将另一个数组的剩余部分添加到结果数组的末尾即可。
下面是一个使用 JavaScript 实现的示例代码:
```javascript
function mergeSortedArrays(arr1, arr2) {
let m = arr1.length;
let n = arr2.length;
let i = 0;
let j = 0;
let mergedArr = [];
while (i < m && j < n) {
if (arr1[i] <= arr2[j]) {
mergedArr.push(arr1[i]);
i++;
} else {
mergedArr.push(arr2[j]);
j++;
}
}
while (i < m) {
mergedArr.push(arr1[i]);
i++;
}
while (j < n) {
mergedArr.push(arr2[j]);
j++;
}
return mergedArr;
}
// 示例用法
let arr1 = [1, 3, 5];
let arr2 = [2, 4, 6];
let merged = mergeSortedArrays(arr1, arr2);
console.log(merged); // 输出 [1, 2, 3, 4, 5, 6]
```
这个示例代码将两个有序数组 `arr1` 和 `arr2` 合并为一个有序数组,并将结果打印到控制台上。