PHP ソート アルゴリズム: PHP クイック ソート アルゴリズムの原理とアルゴリズムの実装

不言
リリース: 2023-04-03 18:58:01
オリジナル
1947 人が閲覧しました

この記事の内容は、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート