V8では、10要素を超える長さの配列に対してクイックソートが使用されます。ここでthe sources次のとおりです。V8のArray.sortでのシェルソートに対する挿入ソートの根拠は何ですか?
function InnerArraySort(array, length, comparefn) {
// In-place QuickSort algorithm.
// For short (length <= 10) arrays, insertion sort is used for efficiency.
私はシェルソートの代わりに、挿入ソートを使用しないための根拠何思ったんだけど?私はそれがおそらく10要素の配列に違いはないが、まだ理解しています。何か案は?
明らかに、小さなアレイがそのスイッチを組み込むためにはパフォーマンスの違いが十分にあります。 – Bergi
@Bergi、はい、 '挿入sort'は' quick sort'より小さい配列では良いですが、 'shell sort'は小さな配列の' insertion sort'よりも良いです。 –
Afaikシェルのソートは挿入の並べ替えとあまり変わりません。それが価値ある変更だと思って現実的なベンチマークを書くことができるなら、私はV8チームがパッチについて喜んでいると確信しています。 – Bergi