<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教程有兴趣的朋友有所帮助。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号