您的位置:首页 > 编程语言 > PHP开发

php算法之快速排序

2013-07-25 12:36 274 查看
/**
* 快速排序
* 原理:
*  快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。
* 最差时间复杂度 O(n*n)
* 最优时间复杂度 O(nlogn)
* 平均时间复杂度 O(nlogn)
*/

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];
}
}
$left = Qsort($left);
$right = Qsort($right);
return array_merge($left, array($key), $right);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: