ホームページ >バックエンド開発 >PHPチュートリアル >クイックソート再帰バージョンPHP実装

クイックソート再帰バージョンPHP実装

不言
不言オリジナル
2018-04-16 10:25:531094ブラウズ

この記事は、クイックソートの再帰バージョンの PHP 実装を紹介します。これは、必要な友人と共有できるようになりました。最もよく知られているクイック ソートを作成してください。残念ですが、今後の参考のためにコードを投稿してください

function qSort(array &$a, $low, $high)
{   
    if($low >= $high) {
        return;
    }
    $index = partition($a,$low,$high);
    qSort($a,$low,$index-1);
    qSort($a,$index+1,$high);
}
//元素相互赋值比交换效率
function partition(array &$a, $low, $high)
{
    $temp = $a[$low];
    while($low < $high) {
        while($low < $high && $a[$high] >= $temp) { 
            --$high;
        }   
        $a[$low] = $a[$high];
        while($low < $high && $a[$low] <= $temp) {
            ++$low;
        }   
        $a[$high] = $a[$low];
    }   
    $a[$low] = $temp;
    return $low;
}

$a = [0,20,7,-1,6,2,6,2,8,9,0 ,1];

qSort( $a, 0, count($a) -1);



var_dump(implode(',', $a));

結果表示: -1,0,0,1 ,2,2,6, 6,7,8,9,20

関連する推奨事項:

JavaScript がクイック ソートを実装する方法の詳細なコード説明

php アルゴリズム クイック ソート

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。