EeBlog(テクニカルブログ) :アルゴリズム

ソートアルゴリズム(10)

今回はクイックソートを紹介します。

クイックソートの基本的な考え方は、まずピボットと呼ばれる基準値を設定し、リストの要素をピボットの値以下の値と、より大きい値に分けます。そしてピボットをそのリストの中心の値とします。そして、2つに分けた部分リストのそれぞれに対して再帰的にクイックソートを適用することでソートします。

以下は Java でのクイックソートの実装例です。

(さらに…)

ソートアルゴリズム(9)

今回紹介するソートアルゴリズムは奇遇転置ソートです。このソートはバブルソートを改良したアルゴリズムで、ソートではスキャンを順番に行っていましたが、奇遇転置ソートでは2つずつペアで比較を行います。

  1. リストの奇数番目の要素とその次の偶数番目の要素を比較し、順番に並んでいなければ入れ替える。
    (リストのすべてのペアでこれを行う。)
  2. リストの偶数番目の要素とその次の奇数番目の要素を比較し、順番に並んでいなければ入れ替える。
    (リストのすべてのペアでこれを行う。)
  3. リストが整列されるまで1. 2. を繰り返す。

(さらに…)

ソートアルゴリズム(8)

今回はストランドソートを解説します。

ストランドソートは前回解説したマージソートと同じマージ系と呼ばれるソートアルゴリズムです。

マージソートではソートされていないリストを2分割してマージソートを再帰呼び出しして、ソートされたサブリストをマージするアルゴリズムでした。

ストランドソートでは、リストからソートされたサブリストを抽出し、結果リストにマージしていくことでソートします。

(さらに…)