我用php写的快速排序算法,请问这段代码有什么问题?
<?php
// 中间步骤:分治,以最右边为基准数,然后分成两个数组,左边那个数组比这个基准数小,右边那个数组比这个基准数大。
function subQuickSort(&$arr,$l,$r)
{
// 递归出口:当数组只有一个数的时候
if($l>=$r)
{
return ;
}
// 中间步骤:分治,以最右边为基准数,然后分成两个数组,左边那个数组比这个基准数小,右边那个数组比这个基准数大。
$i=$l;//$i表示待判断左边的数组都比基准数小的下标值
$j=$r-1;
$temp=0;//$j表示待判断右边的数组比基准数大的下标值
while($i<=$j)
{
while($arr[$i]<$arr[$r]&&$i<=$j)
{
$i++;
}
while($arr[$j]>$arr[$r]&&$i<=$j)
{
$j--;
}
$temp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$temp;
$i++;
$j--;
}
$temp=$arr[$i];
$arr[$i]=$arr[$r];
$arr[$r]=$temp;
// 处理左右两边的数组。
subQuickSort($arr,$l,$i-1);
subQuickSort($arr,$i+1,$r);
}
function quickSort(&$arr)
{
subQuickSort($arr,0,count($arr)-1);
}
$arr=array(0,-1,7,-100,90,30);
quickSort($arr);
print_r($arr);
?>