关闭

PHP 快速排序算法

40人阅读 评论(0) 收藏 举报
// 快速排序
$parameter = array(6,1,2,7,9,3,4,5,10,8);
$left = 0;
$right = (count($parameter)-1);


quick($left,$right);
var_dump($parameter);




function quick($left,$right){
global $parameter;// 获取全局变量


if($left > $right){// 超过中间线 返回
return ;
}


$base = $parameter[$left];// tmp 作为中间基准数
$i = $left;
$j = $right;


while($i != $j){
// 顺序很重要,要先从右侧往左侧找
while($parameter[$j] >= $base && $i < $j){
$j--;
}
// 再从左向右找
while($parameter[$i]<= $base && $i < $j){
$i++;
}


// 交换两个数在数组中的位置
if($i < $j){
$temp = $parameter[$i];
$parameter[$i] = $parameter[$j];
$parameter[$j] = $temp;
}
}


// 最终将基准数归位
$parameter[$left] = $parameter[$i];
$parameter[$i] = $base;


quick($left,$i-1);// 继续处理左边,这里是一个递归的过程
quick($i+1,$right);//继续处理右边,这里是一个递归的过程
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:209次
    • 积分:32
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档