>백엔드 개발 >PHP 튜토리얼 >빠른 정렬 PHP 구현 PHP 빠른 정렬 방법 PHP 빠른 정렬 아이디어 빠른 정렬 알고리즘

빠른 정렬 PHP 구현 PHP 빠른 정렬 방법 PHP 빠른 정렬 아이디어 빠른 정렬 알고리즘

WBOY
WBOY원래의
2016-07-29 08:54:561383검색

<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('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 빠른 정렬과 PHP 콘텐츠를 포함한 빠른 정렬의 PHP 구현을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.