私は最近、どのようにクイックソートが動作するかについてQuick Sort - Computerphile
ビデオをYoutubeで見た(紙)と私は質問があります。たとえば、"27,6,19,2,15,9,10"
を含む配列があるとします。最初は10
をピボットとして選択し、配列は次のようになります:9,2,6 |10| 27,19,15
。次に、左のソートされていない配列のピボットとして6
を選択し、それは2 |6| 9
になり、右のものは19
をピボットとして選択し、右のソートされていない配列は15 |19| 27
になります。問題は次のとおりです。自分の仕事をより簡単にしたいピボットを選ぶことはできますか(この例のように)、それ以上のものがありますか?クイックソートで必要なピボットを選択できますか?
編集:19の代わりに27をピボットとして選択した場合、配列はどのようになりますか?
ランダムピボットは確かに良い選択です。とにかく、短いサブアレイの代替アルゴリズムに切り替えるバージョンでのみ使用してください。さもなければ、乱数生成のコストは重大なオーバーヘッドになる可能性があります。 –
私はその問題を見た。 7要素の配列を持つこの単純なシナリオでは、私のテクニックは良いかどうか?私は最後の質問で質問を更新しました。見てください。 – lor
@ YvesDaoust安い疑似乱数は問題ありません。おそらく単に 'count ++%array.length'を使うことができます。 – Bohemian