PHPのバブルソート

WBOY
リリース: 2016-07-25 09:13:07
オリジナル
994 人が閲覧しました

私は長い間 PHP に触れてきましたが、バブル ソート、クイック ソート、バレル ソートの 3 種類しか使用したことがありません。今日はバブル ソートを学びましょう:

バブルソートとは何ですか? 川の泡のように、泡が 1 つずつ表面に出てきます。その原理は、ソートするシーケンスを繰り返し訪問 (トラバース) し、隣接する 2 つのシーケンスを比較することです。数値を並べ替える場合は、大きい数値を右に移動し、すべての数値が小さい値から大きい値の順序を完了するまでたどります。現在の最大値が比較されるたびに、次のラウンドで残りの数値が比較されます。外側のループはラウンド数を制御し、内側のループは比較の要素を制御します。

コードをアップロードする

    /**
  1. * バブルソート
  2. */
  3. $list = Array(6,8,7,2,3,4,1);
  4. echo "ソート前";
  5. print_r($list);
  6. function mao ($arr){
  7. for($i=1,$len=count($arr);$i for($k= 0 ,$klen=$len-$i;$k if($arr[$k]>$arr[$k +1] ){
  8. $temp = $arr[$k];
  9. $arr[$k] = $arr[$k+1];
  10. $arr[$k+1] = $temp;
  11. }
  12. }
  13. }
  14. return $arr;
  15. }
  16. echo "
    並べ替え後";
  17. print_r(mao($list));
コードをコピー
バブルの過程で、私のアイデアが他の人の考えの中にありました。 百度の過程で、別の方法を見て、それが良いと思ったので、書きました。

    $list = Array(6,8,7,2,3,4,1);
  1. echo "ソート前";
  2. print_r($list);
  3. function mao($arr){
  4. for($ i=0,$len=count($arr)-1;$i // 内側のループは外側のループに基づいて追加しますレイヤー 1. 2 つの要素の比較を制御するには
  5. for($k=$i+1;$k if($arr[$i]>$arr[$k] ] ){
  6. $temp = $arr[$i];
  7. $arr[$i] = $arr[$k];
  8. $arr[$k] = $temp;
  9. }
  10. }
  11. }
  12. return $arr ;
  13. }
  14. echo "
    並べ替え後";
  15. print_r(mao($list));
コードをコピー

私は、後者の書き方に非常に感心しました。なぜなら、前者の書き方は私たちの通常の考え方に基づいているからです。

その考え方は非常に興味深いと感じました。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート