php实现快速排序
思路:
- 选择基本元素,本例去第一个元素
- 小于基本元素的放左边,大于放右边
- 递归处理左右两边数据
function quickSort($arr)
{
$baseNum = $arr[0];
$leftArr = $rightArr = [];
for ($i=1; $i < count($arr); $i++){
if($arr[$i] < $baseNum){
$rightArr[] = $arr[$i];
}else{
$leftArr[] = $arr[$i];
}
}
$left = quickSort($leftArr);
$right = quickSort($rightArr);
//合并
return array_merge($left,[$baseNum],$right);
}
$arr=[9,41,78,56,6,10,39,10,5];
$rs=quickSort($arr);
print_r($rs);