ホームページ  >  記事  >  バックエンド開発  >  PHPでのクイックソートの実装に関連する問題

PHPでのクイックソートの実装に関連する問題

WBOY
WBOYオリジナル
2016-06-13 12:56:16838ブラウズ

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 />


再帰がない場合は、通常どおり 1 回実行されます (if($high>$low) セクションを削除します)。 Chrome を長時間実行すると、再帰的に動作しなくなります。問題がどこにあるのか聞いてもいいですか?

php アルゴリズム エクスプレス並べ替え
-----解決策---------
星が見えるようになる
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。