js实现合并两个有序数组
给定两个有序整数数组arr1和arr2,将 arr2和arr1进行合并为一个单调非递减的数组,并将其输出。
方法一、利用循环:
function mergeArray(arr1,arr2){
var ind1=0; //标记arr1的对比元素的初始索引值
var ind2=0; //标记arr2的对比元素的初始索引值
var arr=[]; //作为输出的新数组
while(ind1<arr1.length && ind2<arr2.length){ //当arr1和arr2元素均未全部存入arr中,则从第一个元素开始进行比较,将较小的那个元素存入arr
if(arr1[ind1]<=arr2[ind2]){
arr.push(arr1.slice(ind1,ind1+1)[0]); //若arr1的对比元素小于arr2的对比元素,则将arr1的对比元素存入arr中
ind1++;
}else{
arr.push(arr2.slice(ind2,ind2+1)[0]);
ind2++;
}
}
while(ind1<arr1.length){ //当arr2的元素已全部存入arr中,则直接将arr1剩余的所有元素依次存入arr
arr.push(arr1.slice(ind1,ind1+1)[0]);
ind1++;
}
while(ind2<arr2.length){ //当arr1的元素已全部存入arr中,则直接将arr2剩余的所有元素依次存入arr
arr.push(arr2.slice(ind2,ind2+1)[0]);
ind2++;
}
return arr;
}方法二、直接使用数组的sort方法:
function mergeArray(arr1,arr2){
return arr1.concat(arr2).sort(function(arr1,arr2){return arr1-arr2 })
}结果:
mergeArray([1,5,10],[2,6,8])
//shuc(6) [1, 2, 5, 6, 8, 10]本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!