/**
*
* 快速排序:不稳定,时间复杂度 最理想 O(nlogn) 最差时间O(n^2)
* 快速排序是对冒泡排序的一种本质改进。它的基本思想是通过一趟扫描后,
* 使得排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确位置,
* 而待排序序列的长度可能只减少1。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左边各数都比它小,
* 右边各数都比它大。然后又用同样的方法处理它左右两边的数,直到基准点的左右只有一个元素为止。
* @param array $arr
* @return array
*/functionfastSort(array $arr){if(count($arr) > 1){
$num = $arr[0];
$arrSmall = [];
$arrBig = [];
foreach ($arras$item){
if($item>$num){
$arrBig[] = $item;
}elseif($item<$num){
$arrSmall[] = $item;
}
}
$arrSmall = fastSort($arrSmall);
$arrBig = fastSort($arrBig);
$arr = array_merge($arrSmall,[$num],$arrBig);
}else{
return$arr;
}
return$arr;
}
登录后复制
以上就介绍了快速排序PHP实现,包括了快速排序,php方面的内容,希望对PHP教程有兴趣的朋友有所帮助。