1. アルゴリズムの概念。
クイックソートはバブルソートを改良したものです。 1962 年に CAR Hoare によって提案されました。
2. アルゴリズム的思考。
1 パスの並べ替えにより、並べ替えるデータを 2 つの独立した部分に分割します。次に、この方法を使用して、データの 2 つの部分全体をそれぞれすばやく並べ替えます。ソート処理は再帰的に実行できるため、データ全体が順序付けられたシーケンスになります。
3. アイデアを実行します。
① 最初のキーワード K 1 を制御ワードとして使用し、[K 1 ,K 2 ,…,K n ] を 2 つのサブエリアに分割し、左側のエリアのすべてのキーワードが K 1 以下になり、すべてのキーワードが以下になるようにします。右側の領域の は K 1 以上であり、最終的に制御ワードは 2 つのサブ領域間の適切な位置に配置されます。サブエリア内のデータはまだ順序付けされていない状態です。
② 左側の領域を全体として①と同様の処理を行い、右側の領域も同様に処理します。 (つまり再帰)
③ 左側の領域が処理されるまで、手順①と②を繰り返します。
public static voidquickSortByMid(int[] a, int low, int high) { if (low >= high) return; // 分割 int pivot = a[low] // ベース値 int i = low, j = high; while (i < j) { while (i < j && a[j] >= ピボット) --j; a[i]=a[j]; while (i < j && a[i] <= ピボット) + +i; a[j]=a[i]; } a[i]=pivot(a, i-1);クイックソートアルゴリズムの概略図:
以上がこの記事の全内容です。皆さんが Java クイック ソート アルゴリズムを学ぶのに役立つことを願っています。