<?php
/**
* 快速排序
*
* @param array
$array
* @return array
*/
function Qsort($array)
{
if (!is_array($array) || empty($array))
{
return array();
}
$len = count($array);
if($len <= 1){
return
$array;
}
$key =
$array[0];
$left = array();
$right =
array();
for($i = 1; $i < $len; $i++) {
if ($array[$i] <= $key) {
$left[] =
$array[$i];
} else {
$right[] =
$array[$i];
}
}
//print_r($left);exit;
$left
= Qsort($left);
$right =
Qsort($right);
//print_r($key);exit;
//print_r(array_merge($left, array($key), $right));echo
"<br>";
return array_merge($left, array($key),
$right);
}
$array = array(29,21,3,234,57,76,6,74);
$result =
Qsort($array);
print_r($result);
?>
相关文章
- 09-18堆的创建、优先队列、topk、堆排序C语言实现
- 09-18Python3实现快速排序
- 09-18python实现排序算法 时间复杂度、稳定性分析 冒泡排序、选择排序、插入排序、希尔排序
- 09-18交换排序(冒泡、快速、三划分排序)
- 09-18快速排序的几种实现方式
- 09-18golang 快速排序
- 09-18快速排序(lomuto 和 Hoare)
- 09-18快速排序的基本实现
- 09-18排序算法之——归并排序和快速排序
- 09-18快速排序为什么这么快?