セアカゴケは選別が悪くない場合が多いです。私のテストでは、自然なマージソートと比較して、赤黒木が次の場所で優れていることが示されました。
Dup にはツリーの方が適しています:
Dup を排除する必要があるすべてのテストでは、ツリー アルゴリズムの方が優れています。ツリーは最初から非常に小さく保つことができるため、これは驚くべきことではありません。これにより、インライン配列ソート用に設計されたアルゴリズムは、より大きなセグメントを長時間通過する可能性があります。
Trees are better for Random:
ランダム ツリー アルゴリズムを使用したすべてのテストが優れています。ツリーでは要素間の距離が短く、シフトが必要ないため、これも驚くべきことではありません。したがって、ツリーに繰り返し挿入することは、配列をソートするよりも労力が少なくて済みます。
そのため、ナチュラル マージ ソートは、昇順および降順の特殊なケースでのみ優れているという印象を受けます。クイックソートとは言えません。
ここでテストケースの要点を説明します。
PS: ソートにツリーを使用することは簡単ではないことに注意してください。挿入ルーチンを提供するだけでなく、ツリーを線形化して配列に戻すルーチンも提供する必要があります。現在、スタックを必要としない get_last と先行ルーチンを使用しています。しかし、これらのルーチンにはループが含まれているため、O(1) ではありません。