在用于合并排序的rosettacode page上,javaScript示例具有以下功能:
1 function merge(left,right,arr){
2 var a=0;
3 while(left.length&&right.length)
4 arr[a++]=right[0]<left[0]?right.shift():left.shift();
5 while(left.length)arr[a++]=left.shift();
6 while(right.length)arr[a++]=right.shift();
7 }
有人可以解释第4行发生的事情吗?
答案 0 :(得分:0)
arr
排序。如果left
内的第一个单元格大于right
内的第一个单元格(?
)right.shift()
,则表示right
内的第一个单元格已删除&安培;返回(推送到arr
)否则(:
),left
转移。