当前位置:Gxlcms > PHP教程 > php实现快速排序的有关问题

php实现快速排序的有关问题

时间:2021-07-01 10:21:17 帮助过:17人阅读

php实现快速排序的问题?

function quick(&$arr,$low,$high){

$key = $low;

for($i=$low,$j=$high;$i!=$j;){

for(;$j>$key;){

if($arr[$j]<$arr[$key]){

list($arr[$j],$arr[$key])=swap($arr[$j],$arr[$key]);
$key = $j;
break;

}else{

$j--;

}

}

for(;$i<$key;){

if($arr[$i]>$arr[$key]){

list($arr[$i],$arr[$key])=swap($arr[$i],$arr[$key]);
$key = $i;
break;

}else{

$i++;

}

}
}

if($high>$low){

quick($arr,$low,$key-1);
quick($arr,$key+1,$high);

}

}

$arr = array(7,4,9,1,3,2,6,8,0);
quick($arr,0,8);
print_r($arr);


不递归的话单跑一遍正常(去掉if($high>$low)那一段)。一递归就不行了,Chrome转半天,应该是无限递归下去了。请问一下问题出在哪呢? php 算法 快递排序


------解决方案--------------------
看得我眼冒金星

人气教程排行