首頁 > 後端開發 > php教程 > php实现快速排序的有关问题

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

WBOY
發布: 2016-06-13 12:56:16
原創
878 人瀏覽過

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 算法 快递排序
------解决方案--------------------
看得我眼冒金星
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板