入力配列を入力として受け取り、並べ替えるプログラムを作成しようとしています。 並べ替えは次のようになります。ランタイムパフォーマンスに基づいて2つのソートアルゴリズムを切り替えるにはどうすればよいですか?
以下のいずれかの並べ替えアルゴリズムを使用して、配列の最初の20%をソートします。プログラムが20%後にソートアルゴリズムが最悪の時間を取っていると識別した場合、プログラムは他のソートアルゴリズムに切り替え、そのソートアルゴリズムを使用して配列をソートし続けます。 私がここで直面している問題は、ソートアルゴリズムが最悪の時間を取っているかどうかを知る方法です。私が使うことになる
ソートALGOSは以下のとおりです。
クイックソート、マージソート 、 バケットソートヘルプの任意の種類は本当に感謝されるだろう
。
"introsort"を参照してください。 –
バケットソートの場合、バケット全体の要素の分布を探すことができます。クイックソートの場合、分割ステップ後にピボットの位置を見ることができます。マージソートは平均複雑度と同じ最悪ケースの複雑さを持つため、このハイブリッドアプローチの最初のアルゴリズムとしてはあまり適していません。 – NPE
逆数の数を数えると、* 1回のみの直線パスがかかります。 – joop