Title:整列アルゴリズム

3つの基本整列法とその特徴

バブルソート 隣り合う要素の値を比較し、大小関係が逆転となっていれば交換する。この比較・交換の操作を必要がなくなるまで繰り返す。隣接交換法ともいう。 隣り合う
単純選択法 未整列の要素の中から最も小さい(大きい)要素を選択し、未整列部分の先頭の要素と入れ替える。この操作を最後から2番目の場所に正しい要素が入るまで繰り返す。 未整列の最少要素
単純挿入法 未整列要素の並びの先頭の要素を取出し、その要素を整列済み要素の中の正しい位置に挿入していく。 未整列の先頭を挿入


比較回数 データ数nのとき n(n-1)/2
計算量 最悪の場合O(n?) 最良の場合O(n)



整列法の考え方

遂次添加法 n個の要素を整列する過程で、(k-1)個が整列済みであるとき、それに1つの要素を加えて整列済みの要素をk個にし、これを、k=2,3,4、…、nまで繰り返す。バブルソート、単純選択ソート、単純挿入法は基づいた整列法である。
分割統治法 大きな問題を小さな問題に分割し、各問題ごとに求めた解を結合することによって、全体の解を求めようとする考えです。ここで分割とは、対象とする集合や定義領域を分けるということで、分割処理の多くは再帰的な処理によって行われる。クイックソートやマージソートはこれに基づいた整列法である。
データ構造の利用 整列の効率を上げるためにデータ構造を利用する。ヒープソート。単純挿入法でも2分検索木で表現することで、計算量がO(nlog?n)となる。


高速な整列アルゴリズム

クイックソート 整列対象要素の中から中間的な基準値を決め、その基準値より大きな値の要素を集めた区分と、小さな値の要素を集めた区分とに整列対象要素を分割します。次に、それぞれの区分の中で再度基準を決め、同様の処理を要素数が1つになるまで繰り返し行う方法 基準値で分割
ヒープソート 根と節(heap) 根と節(heap)順序木
マージソート 分割してマージソート