3
基数ソートの実用化
キーが特定の制限された範囲にあることがわかっている場合、たとえば[ 0 … n k − 1 ]の範囲の値など、基数ソートは理論的に非常に高速です。場合のk < LG のnあなただけのベースに値を変換するn個とるΘ (n個)の時間を、ベース行うn個のソート基数をして、全体のためにあなたの元のベースに戻って変換するΘ (nはkの)アルゴリズム。nnn[ 0 … nk− 1 ][0…nk−1][0\dots n^k -1]k < lgnk<lgnk<\lg nnnnΘ (n )Θ(n)\Theta(n)nnnΘ (n k )Θ(nk)\Theta(nk) ただし、実際には基数ソートは通常、たとえばランダム化されたクイックソートを実行するよりもはるかに遅いことを読みました。 大規模な配列の場合、基数ソートの命令数は最も少なくなりますが、キャッシュパフォーマンスが比較的低いため、全体的なパフォーマンスは、マージソートおよびクイックソートのメモリ最適化バージョンよりも劣ります。 基数の並べ替えは素晴らしい理論上のアルゴリズムですか、それとも一般的な実用的な用途がありますか?