首页  >  文章  >  后端开发  >  php实现快速排序的有关问题

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

WBOY
WBOY原创
2016-06-13 12:56:16867浏览

php实现快速排序的问题?

<br />
function quick(&$arr,$low,$high){<br />
<br />
    $key = $low;<br />
    <br />
    for($i=$low,$j=$high;$i!=$j;){<br />
    <br />
       for(;$j>$key;){<br />
    <br />
           if($arr[$j]<$arr[$key]){<br />
<br />
               list($arr[$j],$arr[$key])=swap($arr[$j],$arr[$key]);     <br />
               $key = $j;<br />
               break;<br />
<br />
           }else{<br />
<br />
               $j--;<br />
<br />
           }<br />
    <br />
       }<br />
    <br />
       for(;$i<$key;){<br />
    <br />
           if($arr[$i]>$arr[$key]){<br />
<br />
               list($arr[$i],$arr[$key])=swap($arr[$i],$arr[$key]);     <br />
               $key = $i;<br />
               break;<br />
<br />
           }else{<br />
<br />
               $i++;<br />
<br />
           }<br />
    <br />
       }<br />
    }<br />
 <br />
    if($high>$low){ <br />
<br />
        quick($arr,$low,$key-1); <br />
        quick($arr,$key+1,$high);<br />
<br />
    }<br />
<br />
}<br />
<br />
$arr = array(7,4,9,1,3,2,6,8,0);<br />
quick($arr,0,8);<br />
print_r($arr);<br />


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

php 算法 快递排序
------解决方案--------------------
看得我眼冒金星
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn