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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-06-13 11:11:48843瀏覽

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