Javascript 尝试合并两个数组,同时排序到第三个数组
我有一个家庭作业,基本上是两个数组,它们必须被分成一个数组。这有一个警告,不合并然后排序。换句话说,我必须同时遍历这两个数组,然后从中生成第三个数组,它被排序。我有点困惑,为什么可以同时搜索两个数组,然后寻找最小值并将其移动到第三个数组 有人能给我举个这样的例子吗?我被它弄糊涂了 谢谢大家 以下是一些细节 •调用函数时不应更改两个参数数组。总的来说,这是一个很好的做法。 •您不能简单地附加两个数组,然后对结果进行排序。相反,您应该依次检查数组的每个元素,看看哪个元素更小。 •返回包含正确内容的新创建数组。 •执行算法的时间应与两个输入数组中的元素数量之和成正比 是的,数组是被排序的,但我必须遍历并找到两个数组中的最低值,然后将其添加到第三个数组中,然后是两个数组中的第二个最低值,然后继续……Javascript 尝试合并两个数组,同时排序到第三个数组,javascript,arrays,Javascript,Arrays,我有一个家庭作业,基本上是两个数组,它们必须被分成一个数组。这有一个警告,不合并然后排序。换句话说,我必须同时遍历这两个数组,然后从中生成第三个数组,它被排序。我有点困惑,为什么可以同时搜索两个数组,然后寻找最小值并将其移动到第三个数组 有人能给我举个这样的例子吗?我被它弄糊涂了 谢谢大家 以下是一些细节 •调用函数时不应更改两个参数数组。总的来说,这是一个很好的做法。 •您不能简单地附加两个数组,然后对结果进行排序。相反,您应该依次检查数组的每个元素,看看哪个元素更小。 •返回包含正确内容的新
然后使用.sort()方法,我不明白您所说的必须同时检查这两个数组是什么意思。如果这两个数组已经排序,并且您将它们排序为空数组, 没有比最简单的方法更快的了-
function insorter(A, B){
var C= [], LA= A.length, LB= B.length, i= 0, j= 0, k= 0;
while(i<LA && j<LB){
while(A[i]<B[j]){
C[k++]= A[i++];
}
while(B[j]<= A[i]){
C[k++]= B[j++];
}
}
if(i<LA) C.splice(k, 0,A.slice(i));
else if(j<LB) C.splice(k, 0,B.slice(j));
return C;
}
var a= [10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49],
b= [0, 3.5, 7, 10.5, 14, 17.5, 21, 24.5, 28, 31.5, 35, 38.5];
insorter(a, b);
功能插入器(A、B){
变量C=[],LA=A.length,LB=B.length,i=0,j=0,k=0;
while(我两个数组都已经排序了吗?两个输入数组都已经排序了吗?问题很简单,请参见更新的问题。这通常可能是一个好方法,但这里特别禁止。是的,我同意,但数组排序的事实刚刚公布