ホームページ > バックエンド開発 > PHPの問題 > PHPクイックソートの実装

PHPクイックソートの実装

WBOY
リリース: 2023-05-06 10:49:07
オリジナル
772 人が閲覧しました

クイック ソートは一般的な並べ替えアルゴリズムであり、ほとんどの場合、特に大規模なデータの並べ替えシナリオの場合、他の並べ替えアルゴリズムよりも高速に実行されます。 PHP でのクイック ソートの実装も非常に簡単で、必要なコードは数行だけです。この記事ではphpでのクイックソートの実装を紹介します。

クイック ソートとは

クイック ソートは、分割統治に基づいたソート アルゴリズムであり、ソート対象のシーケンスをいくつかのサブシーケンスに分割し、各サブシーケンスはベンチマーク値に従ってソートされます。基本値には任意の数値を指定できます。通常は最初または最後の要素が取得され、データは 2 つのグループに分割され、一方の側は基本値より大きく、もう一方の側は基本値より小さくなります。このプロセスを再帰的に呼び出し、最後にサブシーケンスをマージすることで、順序付けられたシーケンスを取得できます。

PHP クイック ソートの実装

コードは次のとおりです:

function quickSort($arr)
{
    $length = count($arr);
    if ($length <= 1) {
        return $arr;
    }
    $left = $right = array();
    $pivot = $arr[0];
    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));
}
ログイン後にコピー

上記のコードでは、$arr はソートされる配列であり、$left と $right は配列をそれぞれ使用します 基本値より小さい数値と大きい数値を格納します $pivot が基本値です 配列内の数値はループによってサイズに応じて 2 つのカテゴリに分割されます 最後に、左側と右側の部分の数値は組み合わせた。

クイック ソートの計算時間は O(nlogn) であり、実際の使用においても非常に効率的です。

概要

クイック ソートは、分割統治に基づいた一般的な並べ替えアルゴリズムであり、ベンチマーク番号を選択することにより、並べ替え対象の配列が 2 つの部分列に分割され、部分列が再帰的に並べ替えられます。最後に、2 つのサブシーケンスが順序付けられたシーケンスにマージされます。 PHP でのクイック ソートの実装も非常に簡単です。上記のコードは参考用です。クイック ソート アルゴリズムの時間計算量は O(nlogn) で、実際の使用では良好なパフォーマンスを発揮します。

以上がPHPクイックソートの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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