PHP を使用してクイック ソート アルゴリズムを作成する方法
クイック ソート アルゴリズムは、大量のデータを処理するときに優れた効率を示す、一般的に使用される並べ替えアルゴリズムです。この記事では、PHP を使用してクイック ソート アルゴリズムを作成する方法とコード例を紹介します。
クイック ソート アルゴリズムの基本原理は、配列を 2 つの小さなサブ配列に再帰的に分割し、次に 2 つのサブ配列をソートし、最後に順序付けられた 2 つのサブ配列を順序付けられた 1 つの配列にマージすることです。
以下は、PHP で記述されたクイック ソート アルゴリズムのコード例です。
function quickSort($arr) { // 如果数组长度小于等于1,则直接返回数组 $length = count($arr); if ($length <= 1) { return $arr; } // 选择一个基准元素(可以是任意一个元素),将数组分成两部分 $pivot = $arr[0]; $left = $right = array(); // 将比基准元素小的放在左子数组,比基准元素大的放在右子数组 for ($i = 1; $i < $length; $i++) { if ($arr[$i] < $pivot) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; } } // 递归地对左右子数组进行快速排序,并将结果合并 return array_merge(quickSort($left), array($pivot), quickSort($right)); } // 调用快速排序函数 $array = array(7, 2, 5, 3, 9, 6); $sortedArray = quickSort($array); // 输出排序结果 echo "排序结果:" . implode(", ", $sortedArray);
上記のコードでは、まず quickSort
という名前の関数を定義します。この関数はパラメータとして配列を受け取り、クイックソート後に順序付けされた配列を返します。
まず、関数内で配列の長さが 1 以下であるかどうかを判断し、1 以下であれば配列を直接返します。これが再帰的アルゴリズムの終了条件です。
次に、配列の最初の要素をベース要素として選択し、ベース要素よりも小さい要素を格納する 2 つの空の配列 $left
と $right
を定義します。 . そして大きな要素。
次に、ループを使用して配列を走査し、ベース要素より小さい要素を $left
配列に配置し、ベース要素より大きい要素を $right に配置します。 ### 配列。
quickSort 関数の再帰呼び出しを使用して左右の部分配列を並べ替え、
array_merge 関数と基本要素を使用して結果をマージします。最終的に返されるのは、クイックソート後の順序付き配列です。
$array を定義し、
quickSort 関数を呼び出して並べ替えます。最後に、
implode 関数を使用して、並べ替えられた結果をカンマ区切り形式で出力します。
以上がPHPを使用したクイックソートアルゴリズムの作成方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。