PHP快速排序法

来源:互联网 发布:曼秀雷敦润唇啫喱知乎 编辑:程序博客网 时间:2024/05/20 18:17
<?php/** * Created by PhpStorm. * User: ziniu * Date: 2016/9/20 * Time: 16:04 */// 快速排序$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
原创粉丝点击