ホームページ >バックエンド開発 >PHPチュートリアル >PHP ソート アルゴリズム: PHP クイック ソート アルゴリズムの原理とアルゴリズムの実装
この記事の内容は、PHP ソート アルゴリズムに関するものです。PHP クイック ソートのアルゴリズム原理と実装については、一定の参考値があります。必要な友人は参考にしてください。お役に立てば幸いです。
php クイック ソート アルゴリズムの原則: 現在の配列内の任意の要素を検索し (通常は最初の要素を選択します)、標準として、2 つの空の配列 left と rightnt を作成し、配列要素全体を走査します。現在の要素より小さい要素は配列 left に配置され、現在の要素より大きい要素は rigt に配置され、同じ操作が新しい配列に対して実行されます。
再帰:
再帰は、関数がそれ自体を呼び出すメカニズムです。
再帰には境界条件、つまり再帰終了 (終了再帰) が必要です。
最終値である再帰前方セクションと再帰戻りセクション
境界条件が満たされない場合、再帰は続行されます。 ; 境界のとき 条件 (再帰終了) が満たされる場合、再帰は戻ります。
PHP の再帰はパフォーマンスを非常に消費するため、使用は避けてください。
php クイックソート原理複合再帰原理
再帰ポイント: 配列要素が 1 より大きい場合、分解する必要があるため、再帰ポイントは、新しく構築された配列要素の数が より大きいことです。 1
再帰的終了: 配列要素の数が 1 の場合、新しい配列をソートする必要はありません。
php クイック ソート メソッドの実装コード:
$arr = [34,56,7,89,12,9]; function quick_sort($arr) { // 判断参数是否是一个数组 if(!is_array($arr)) return false; // 递归出口:数组长度为1,直接返回数组 $length = count($arr); if($length <= 1) return $arr; // 数组元素有多个,则定义两个数组 $left = $right = []; // 循环遍历数组,把第一个元素当做比较的对象 for($i=1;$i<$length;$i++) { //判断当前元素的大小 if($arr[$i] < $arr[0]) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; } } // 递归调用 $left = quick_sort($left); $right = quick_sort($right); // 将所有的结果合并 return array_merge($left,[$arr[0]],$right); } print_r(quick_sort($arr));
関連する推奨事項:
php バブル ソート クイック ソート、php バブル ソート
#php バブル ソート クイック ソート、php バブル ソート_PHP チュートリアル
以上がPHP ソート アルゴリズム: PHP クイック ソート アルゴリズムの原理とアルゴリズムの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。