0

マージソートのrosettacodeページで、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行目で何が起こっているのか誰か説明してもらえますか?

4

1 に答える 1

0

arr並べ替えます。内側の最初のセルが内側の最初のセルleftよりも大きい場合right( ?) right.shift()- 内側の最初のセルrightが削除されて返される (プッシュされるarr) ことを意味します。そうでない場合 ( :)、leftシフトされます。

于 2013-09-22T23:15:14.623 に答える