实现如下函数 JavaScript function mergeSortedArr(arr1,arr2) { // arr1、arr2是数组,其元素都是Number类型// arr1与arr2内元素均按从小到大排序/数组长度可能很大 //请返回合并后的数组,且合并后的数组均按从小到大排序}
时间: 2023-12-06 22:03:34 浏览: 55
JavaScript 实现合并数组并排序
可以使用归并排序的思想来合并两个有序数组,具体实现如下:
```javascript
function mergeSortedArr(arr1, arr2) {
let i = 0, j = 0, k = 0;
const mergedArr = new Array(arr1.length + arr2.length);
while (i < arr1.length && j < arr2.length) {
if (arr1[i] <= arr2[j]) {
mergedArr[k++] = arr1[i++];
} else {
mergedArr[k++] = arr2[j++];
}
}
while (i < arr1.length) {
mergedArr[k++] = arr1[i++];
}
while (j < arr2.length) {
mergedArr[k++] = arr2[j++];
}
return mergedArr;
}
```
代码中,我们定义三个指针 `i`、`j` 和 `k`,分别指向两个输入数组的起始位置和合并后数组的当前位置。然后,我们依次比较 `arr1[i]` 和 `arr2[j]` 的大小,将较小的元素存入 `mergedArr` 中,并将对应指针向后移动一位。最后,如果有一个数组已经被遍历完了,我们直接将另一个数组的剩余部分添加到 `mergedArr` 中。最终返回合并后的数组即可。
阅读全文