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