您的位置:首页 - 教程 - PHP - 正文
php快速排序
<?php
//快速排序
$arr=array();
$arr=array(52,44,23,16,72,47,189);
function qsort($arr){
$length=count($arr);//得到数组的长度
if(!is_array($arr)||empty($arr)){ //先判断是否需要继续进行
return array();
}
if($length<=1){ //避免无限递归
return $arr;
}
$key=$arr[0];//选择一个标尺,比它大的放到右边,比它小的存放到左边
$left_array=array();
$right_array=array();
for($i=1;$i<$length;$i++){
if($arr[$i]<$key){
$left_array[]=$arr[$i];//小于标尺的
}else{
$right_array[]=$arr[$i];//大于标尺的
}
}
$left_array = qsort($left_array);
$right_array = qsort($right_array);
return array_merge($left_array,array($key),$right_array);
}
print_r(qsort($arr));
//Array ( [0] => 16 [1] => 23 [2] => 44 [3] => 47 [4] => 52 [5] => 72 [6] => 189 )
?>

评论: