用php写一个快速排序
时间: 2023-11-23 08:02:12 浏览: 55
好的,以下是一个用 PHP 写的快速排序的例子:
```
function quickSort($arr){
$len = count($arr);
if($len <= 1){
return $arr;
}
$mid = $arr[0];
$left_arr = array();
$right_arr = array();
for($i=1;$i<$len;$i++){
if($arr[$i]<$mid){
$left_arr[] = $arr[$i];
}else{
$right_arr[] = $arr[$i];
}
}
$left_arr = quickSort($left_arr);
$right_arr = quickSort($right_arr);
return array_merge($left_arr,array($mid),$right_arr);
}
$arr = array(5,1,8,2,7,3,6,4);
$arr = quickSort($arr);
print_r($arr);
```
这个代码会对一个数组进行快速排序,将数组按照升序排列。如果你有任何问题或需要进一步解释,可以给我留言。
相关问题
PHP数组快速排序函数怎么写,举例
请问您需要使用哪种算法对PHP数组进行快速排序?常见的算法有快速排序、归并排序、堆排序等。以下是使用快速排序算法对PHP数组进行排序的示例代码:
```
function quick_sort($arr) {
$len = count($arr);
if ($len <= 1) {
return $arr;
}
$pivot = $arr[0]; // 中间数
$left_arr = array();
$right_arr = array();
for ($i=1; $i<$len; $i++) {
if ($arr[$i] < $pivot) {
$left_arr[] = $arr[$i];
} else {
$right_arr[] = $arr[$i];
}
}
$left_arr = quick_sort($left_arr); //递归排序左侧
$right_arr = quick_sort($right_arr); //递归排序右侧
return array_merge($left_arr, array($pivot), $right_arr);
}
$arr = array(10, 5, 23, 8, 40);
echo '排序前:' . implode(',', $arr) . PHP_EOL;
$arr = quick_sort($arr);
echo '排序后:' . implode(',', $arr) . PHP_EOL;
```
以上代码将给定的数组进行分割排序,直到分割成不可再分的单个元素,然后将排序后的子数组合并起来。这里使用递归实现了快速排序算法。
阅读全文