ホームページ > バックエンド開発 > PHPチュートリアル > クイックソート PHP の実装 php クイックソートの方法 php クイックソートのアイデア クイックソートのアルゴリズム

クイックソート PHP の実装 php クイックソートの方法 php クイックソートのアイデア クイックソートのアルゴリズム

WBOY
リリース: 2016-07-29 08:54:56
オリジナル
1401 人が閲覧しました

<code><span>/**
 *
 * 快速排序:不稳定,时间复杂度 最理想 O(nlogn) 最差时间O(n^2)
 * 快速排序是对冒泡排序的一种本质改进。它的基本思想是通过一趟扫描后,
 * 使得排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确位置,
 * 而待排序序列的长度可能只减少1。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左边各数都比它小,
 * 右边各数都比它大。然后又用同样的方法处理它左右两边的数,直到基准点的左右只有一个元素为止。
 *<span> @param</span> array $arr
 *<span> @return</span> array
 */</span><span><span>function</span><span>fastSort</span><span>(array <span>$arr</span>)</span>{</span><span>if</span>(count(<span>$arr</span>) > <span>1</span>){
        <span>$num</span> = <span>$arr</span>[<span>0</span>];
        <span>$arrSmall</span> = [];
        <span>$arrBig</span> = [];
        <span>foreach</span> (<span>$arr</span><span>as</span><span>$item</span>){
            <span>if</span>(<span>$item</span>><span>$num</span>){
                <span>$arrBig</span>[] = <span>$item</span>;
            }<span>elseif</span>(<span>$item</span><<span>$num</span>){
                <span>$arrSmall</span>[] = <span>$item</span>;
            }
        }
        <span>$arrSmall</span> = fastSort(<span>$arrSmall</span>);
        <span>$arrBig</span> = fastSort(<span>$arrBig</span>);
        <span>$arr</span> = array_merge(<span>$arrSmall</span>,[<span>$num</span>],<span>$arrBig</span>);
    }<span>else</span>{
        <span>return</span><span>$arr</span>;
    }
    <span>return</span><span>$arr</span>;
}</code>
ログイン後にコピー
').addClass('事前番号付け').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

上記では、クイック ソートと PHP コンテンツを含む、クイック ソートの PHP 実装を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

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