php quickSort_快速排序

来源:互联网 发布:多益网络用户中心 编辑:程序博客网 时间:2024/06/05 01:13
<?php//快速排序function quick_sort(&$arr, $l, $r){    if ($l < $r)    {//Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1        $i = $l; $j = $r; $x = $arr[$l];        while ($i < $j)        {            while($i < $j && $arr[$j] >= $x) // 从右向左找第一个小于x的数$j--;              if($i < $j) $arr[$i++] = $arr[$j];            while($i < $j && $arr[$i] < $x) // 从左向右找第一个大于等于x的数$i++;              if($i < $j) $arr[$j--] = $arr[$i];        }        $arr[$i] = $x;        quick_sort($arr, $l, $i - 1); // 递归调用         quick_sort($arr, $i + 1, $r);    }}$arr = array(3,1,2,5,6,7,4,1);quick_sort($arr,0,7);print_r($arr);

0 0
原创粉丝点击