<?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);
php quickSort_快速排序
最新推荐文章于 2021-03-25 17:51:56 发布