一、先取一个值,用于标准定位。
二、遍历数组,将大于值的放到右边数组,小于的放到左边数组
三、然后将每次的左右数组和基值一起合并
function sort_haifeng($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];
}
}
//递归调用
$leftArr = sort_haifeng($leftArr);
$rightArr = sort_haifeng($rightArr);
//合并数组
return array_merge($leftArr,array($key),$rightArr);
}
$arr = array(1,2,5,8,9,100,3,88,50,22);
$arr = sort_haifeng($arr);