どのソートアルゴリズムは、STLと.NETベースのライブラリーのデフォルトの検索に使用されていますか?

StackOverflow https://stackoverflow.com/questions/961630

質問

私は今、マージソートのimprivedバージョンに取り組んでいます。私はC ++とC#でそれを実装しました。そして、それぞれのSTLのソートとのArray.sort()アルゴリズムと比較しました。 C ++では、私は等しい(時には良い)結果を持っています。しかし、C#で、私は、ポインタを使用するための、安全でないコードを使用する必要がありました。ここperformenceは、デフォルトのソートとそれほど比較することはできません。だから、私は

know-したいです アルゴリズムはSTLと.NETベースクラスライブラリで使用されている1?(リンク付きファイン)
2.危険なコードを実行してくださいperformenceの問題を持っている?
3.新しいアルゴリズムのperformenceを測定に関する私のためにどれsuggessions?

役に立ちましたか?

解決

.NETは、クイックソート(3クイックソートのSedgewickの中央値)の変化を使用します。

あなたはソートの専門家をでない限り、あなたが(ランダム、すでに発注し、逆順序セットを含む)データの組み込みのソートを超える広い範囲を倒すことができれば、私は驚くだろう。危険なコードに頼ることは、通常は悪い考えです...

他のヒント

ウィキペディアが言うように

STLのソートは実装に依存してもよいが、( に)それは、イントロソート通常、クイックソートやヒープソートの組み合わせです。それは(N Nログ)比較Oの平均複雑さを持っている必要があります。

.NETクイックソートを使用しています。あなたはリフレクターに使用することができます/ P>

ほとんどの場合、クイックソートは最悪の場合の実行時間が長くなっていても、マージソートよりも高速に実行されます。私は思いますが、これらのいずれかが使用されている場合、私はかどうか分からないだけでなく、標準的なクイックソートのいくつかの改善が行われている。

私は同様にクイックソートを使用してSTLを思い出すように見えるが、私は完全に一定ではないんです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top