php 中快速排序结果出错,求大神指教原因

输出结果是 3 2 6 7 8 9 而不是 2 3 6 7 8 9 请问是哪的问题?
function kuaisu($a,$left,$right){

if($left<$right){
$low = $left;
$high = $right;
$key = $a[$left];
while($low<$high){
while($low<$high && $a[$high]>$key){
$high--;
}
$a[$low] = $a[$high];
while($low<$high && $a[$low]<$key){
$low++;
}
$a[$high] = $a[$low];
}

$a[$low] = $key;
kuaisu($a,$left,$low-1);
kuaisu($a,$low+1,$right);
}
return $a;
}
$aa = [6,2,7,3,8,9];
$aa = kuaisu($aa,0,5);
for($i=0;$i<6;$i++){
echo $aa[$i].' ';
}

控制排序很简单的 本身就有数组排序函数 sort()从左向右 由小到大
rsort() 对数组逆向排序。 从左向右 由大到小
$aa = array(6,2,7,3,8,9);
sort($aa);
foreach ( $aa as $v)
{
echo $v."<br>";
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-31
是要写冒泡排序吧。
不需要这样写啊。双循环就可以了
相似回答