javascript语法 - rosetta代码合并排序

时间:2013-09-22 23:08:36

标签: javascript syntax semantics mergesort

在用于合并排序的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行发生的事情吗?

1 个答案:

答案 0 :(得分:0)

arr排序。如果left内的第一个单元格大于right内的第一个单元格(?right.shift(),则表示right内的第一个单元格已删除&安培;返回(推送到arr)否则(:),left转移。