Data-structures-algorithms-quick-sort-algorithm
提供:Dev Guides
データ構造とアルゴリズム-クイックソート
クイックソートは非常に効率的なソートアルゴリズムであり、データの配列をより小さな配列に分割することに基づいています。 大きな配列は2つの配列に分割され、1つは指定された値よりも小さい値、たとえばピボットを保持し、別の配列はピボット値よりも大きい値を保持します。
クイックソートは配列を分割し、それ自体を2回再帰的に呼び出して、結果の2つのサブ配列をソートします。 このアルゴリズムは、平均サイズと最悪ケースの複雑度がそれぞれO(nLogn)とimage.png(n ^ 2 ^)であるため、大規模なデータセットに対して非常に効率的です。
クイックソートのパーティション
次のアニメーション表現は、配列内のピボット値を見つける方法を説明しています。
ピボット値は、リストを2つの部分に分割します。 そして再帰的に、すべてのリストに要素が1つだけ含まれるまで、各サブリストのピボットを見つけます。
クイックソートピボットアルゴリズム
クイックソートでのパーティション分割の理解に基づいて、次のようなアルゴリズムの作成を試みます。
クイックソートピボット擬似コード
上記のアルゴリズムの擬似コードは、次のように導出できます-
クイックソートアルゴリズム
ピボットアルゴリズムを再帰的に使用すると、パーティションが小さくなります。 その後、各パーティションはクイックソートのために処理されます。 次のようにクイックソートの再帰アルゴリズムを定義します-
クイックソート擬似コード
それにもっと入るには、クイックソートアルゴリズムの擬似コードを見てみましょう-
Cプログラミング言語でのクイックソートの実装については、リンク:/data_structures_algorithms/quick_sort_program_in_c [ここをクリック]をご覧ください。