//待排序数组
$arr = array(7,3,8,6,4,2,9,5,1);
//函数实现快速排序
function quickSort($arr)
{
//判断参数是否是一个数组
if(!is_array($arr)) return false;
//递归出口:数组长度为1,直接返回数组
$length = count($arr);
if($length <= 1) return $arr;
//数组元素有多个,则定义两个空数组
$left = $right = array();
//使用for循环进行遍历,把第一个元素当做比较的对象
for($i = 1; $i < $length; $i++)
{
//判断当前元素的大小
if($arr[$i] < $arr[0]){
$left[] = $arr[$i];
}else{
$right[] = $arr[$i];
}
}
//递归调用
$left = quickSort($left);
$right = quickSort($right);
//将所有的结果合并
return array_merge($left,array($arr[0]),$right);
}
//调用
print_r(quickSort($arr));
$arr = array(7,3,8,6,4,2,9,5,1);
//函数实现快速排序
function quickSort($arr)
{
//判断参数是否是一个数组
if(!is_array($arr)) return false;
//递归出口:数组长度为1,直接返回数组
$length = count($arr);
if($length <= 1) return $arr;
//数组元素有多个,则定义两个空数组
$left = $right = array();
//使用for循环进行遍历,把第一个元素当做比较的对象
for($i = 1; $i < $length; $i++)
{
//判断当前元素的大小
if($arr[$i] < $arr[0]){
$left[] = $arr[$i];
}else{
$right[] = $arr[$i];
}
}
//递归调用
$left = quickSort($left);
$right = quickSort($right);
//将所有的结果合并
return array_merge($left,array($arr[0]),$right);
}
//调用
print_r(quickSort($arr));
//输出
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
)
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
)
原创文章,作者:iConan,如若转载,请注明出处:https://www.aspyc.com/archives/764.html