私が使用しているデータセットの特徴的な機能のいくつかは、次の傾向を示しています。
配列の最初の50〜70%はほぼソートされ、最後の30%は完全にスクランブルされています。
- 挿入ソート部分をシェルソートに置き換えても効果はありますか?
- 挿入ソート部分をシェルソートに置き換えても効果はありますか?
配列の最初の50〜70%はほぼソートされており、最後の30%には多くのカメが含まれています。
- カメの発生は非常に重要なので、このコムソートのバリエーションを支持してティムソートを捨てる必要があります-
ここで。彼らのベストケースのパフォーマンスはO(n)を示していますが、平均ケースパフォーマンスはO(n log n)のティムソートの方が優れていますが、コムソートはΩ(n log n)ですが、これはコムソートの修正バージョンまたはカメの密度を取ります考慮に入れますか?
- カメの発生は非常に重要なので、このコムソートのバリエーションを支持してティムソートを捨てる必要があります-
ここで。彼らのベストケースのパフォーマンスはO(n)を示していますが、平均ケースパフォーマンスはO(n log n)のティムソートの方が優れていますが、コムソートはΩ(n log n)ですが、これはコムソートの修正バージョンまたはカメの密度を取ります考慮に入れますか?
2番目のシナリオと同じですが、パフォーマンスを向上させることができる場合は、部分的にソートされた出力で問題ありません。たとえば、1,000,000個の要素を含む配列は、配列の最初の1%スロットに最小の1%(つまり、10,000個の要素)を持つことができますが、内部で並べ替える必要はありません。
- これは、クイックソートで特定の再帰深度の後に引き出して、要素を適切な場所のほぼ近くに配置することで実行できますか。
関連する場合は、これが私が変更しようとしているJava用のTimsortコードです--code。