どのソートアルゴリズムは、STLと.NETベースのライブラリーのデフォルトの検索に使用されていますか?
-
12-09-2019 - |
質問
私は今、マージソートのimprivedバージョンに取り組んでいます。私はC ++とC#でそれを実装しました。そして、それぞれのSTLのソートとのArray.sort()アルゴリズムと比較しました。 C ++では、私は等しい(時には良い)結果を持っています。しかし、C#で、私は、ポインタを使用するための、安全でないコードを使用する必要がありました。ここperformenceは、デフォルトのソートとそれほど比較することはできません。だから、私は
know-したいです
アルゴリズムはSTLと.NETベースクラスライブラリで使用されている1?(リンク付きファイン)
2.危険なコードを実行してくださいperformenceの問題を持っている?
3.新しいアルゴリズムのperformenceを測定に関する私のためにどれsuggessions?
解決
.NETは、クイックソート(3クイックソートのSedgewickの中央値)の変化を使用します。
あなたはソートの専門家をでない限り、あなたが(ランダム、すでに発注し、逆順序セットを含む)データの組み込みのソートを超える広い範囲を倒すことができれば、私は驚くだろう。危険なコードに頼ることは、通常は悪い考えです...
他のヒント
.NETクイックソートを使用しています。あなたは ほとんどの場合、クイックソートは最悪の場合の実行時間が長くなっていても、マージソートよりも高速に実行されます。私は思いますが、これらのいずれかが使用されている場合、私はかどうか分からないだけでなく、標準的なクイックソートのいくつかの改善が行われている。 私は同様にクイックソートを使用してSTLを思い出すように見えるが、私は完全に一定ではないんです。