<?phpfunction QuickSort_Partition($array, $low, $high)
{
$temp = $array[$low];
while($low<$high)
{
while($low<$high && $array[$high]>=$temp)
$high--;
$array[$low] = $array[$high];
while($low<$high && $array[$low]<=$temp)
$low++;
$array[$high] = $array[$low];
}
$array[$low] = $temp;
return $low;
}
function QuickSort($array, $low, $high)
{
$mid = QuickSort_Partition($array, $low, $high);
QuickSort($array, 0, $mid-1);
QuickSort($array, $mid+1, $high);
}$Quick_Mat = array(3, 4, 2, 87, 4, 53, 43);
QuickSort($Quick_Mat, 0, count($Quick_Mat)-1);
echo "Quick Sort Result:<br />";
for($ii=0; $ii<count($Quick_Mat); $ii++)
echo $Quick_Mat[$ii]." ";
echo "<br />";
?>运行该代码,总是提示无法连接到网站,请高手指教!谢谢
{
$temp = $array[$low];
while($low<$high)
{
while($low<$high && $array[$high]>=$temp)
$high--;
$array[$low] = $array[$high];
while($low<$high && $array[$low]<=$temp)
$low++;
$array[$high] = $array[$low];
}
$array[$low] = $temp;
return $low;
}
function QuickSort($array, $low, $high)
{
$mid = QuickSort_Partition($array, $low, $high);
QuickSort($array, 0, $mid-1);
QuickSort($array, $mid+1, $high);
}$Quick_Mat = array(3, 4, 2, 87, 4, 53, 43);
QuickSort($Quick_Mat, 0, count($Quick_Mat)-1);
echo "Quick Sort Result:<br />";
for($ii=0; $ii<count($Quick_Mat); $ii++)
echo $Quick_Mat[$ii]." ";
echo "<br />";
?>运行该代码,总是提示无法连接到网站,请高手指教!谢谢
function QuickSort($arr){
$num = count($arr);
$l=$r=0;
for($i=1;$i<$num;$i++){
if($arr[$i] < $arr[0]){
$left[] = $arr[$i];
$l++;
}else{
$right[] = $arr[$i];
$r++;
}
}
if($l > 1){
$left = QuickSort($left);
}
$new_arr = $left;
$new_arr[] = $arr[0];
if($r > 1){
$right = QuickSort($right);
}
for($i=0;$i<$r;$i++){
$new_arr[] = $right[$i];
}
return $new_arr;
}
$arr = array(7,1,6,5,2);
$arr_new = QuickSort($arr);
print_r($arr_new);
谢谢2楼,我只是想知道这个怎么错了
{
$mid = QuickSort_Partition($array, $low, $high);
QuickSort($array, 0, $mid-1);
QuickSort($array, $mid+1, $high);
}
这个功能函数第3,4行加上对$mid判断再加以引用应该可以解决死循环。