クイックソートとその計算量について

【編集中】

数列を昇順または降順に並べるアルゴリズムの一つにクイックソートがあります。直感的に分かりやすいバブルソートと比較してピボットによる分割があったりでめんどくさいイメージがあったのですが、有名なアルゴリズムなので勉強しておきたいと思います。以下計算手順です。テストケースとして次の数列を扱います。

$$A={4,8,6,5,2,1,3,9,7}$$

  1. 基準値を決めます。たとえば、最初と最後の要素の平均にします。
  2. 前方から基準値より大きな数を、後方から基準より小さな数を探します。見つかったら入れ替えます。
  3. 得られた列はぶつかったところを境に、基準値よりも小さいグループと大きいグループに分かれています。そして、この得られた列それぞれに同じ手順を繰り返していきます。

qick

この操作を繰り返すことで数列を昇順に並び替えることができます。それではこの操作をC言語で記述してみます。


#include <stdio.h>
int main(void){

return 0;
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>