首先了解快速排序的原理:
1、先取一个基值,用于每次的标准定位。
2、遍历数组,将大于基值的放到右边数组,小于的放到左边数组
3、将每次的左右数组和基值一起合并
代码实现:
//快速排序
function quick_sort($array){
$count = count($array);
if ($count<=1) {
return $array;
}
//每次取最左边的值
$key = $array[0];
$leftArr = array();
$rightArr = array();
for ($i=1; $i<$count; $i++) {
//放到左边
if ($array[$i]<=$key) {
$leftArr[] = $array[$i];
}else{
//放到右边
$rightArr[] = $array[$i];
}
}
// print_r($leftArr);
// echo "<br>";
// print_r($rightArr);
// echo "<br>";
//递归调用
$leftArr = quick_sort($leftArr);
$rightArr = quick_sort($rightArr);
//合并数组
return array_merge($leftArr,array($key),$rightArr);
}
$arr = array(1,2,5,8,9,100,3,88,50,22);
// $arr = bubble_sort($arr);
$arr = quick_sort($arr);
// print_r($arr);
本文详细介绍了快速排序算法的原理及其实现过程。首先选取一个基准值,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
703

被折叠的 条评论
为什么被折叠?



