PHPバブルソートアルゴリズムの詳細


前言
バブルソートとは、隣接する2つの数を順番に比較し、最後の2桁までサイズに応じてソートすることを意味します.ソート中は常に小数を前に、大数を後ろに、気泡を上昇させることに相当するので、泡ソートと呼ばれます.しかし、実際の過程では、自分の必要に応じて逆に使って、大きな木を前に置いて、小数を後ろに置いてもいいです.
実戦
直接コード:
 $demo_array[$j]) {
            $tmp            = $demo_array[$i]; //    tmp     
            $demo_array[$i] = $demo_array[$j]; //        
            $demo_array[$j] = $tmp;            //       
        }
    }
}

//      
echo '
';
var_dump($demo_array);
echo '
';
:
array(13) {
  [0]=>
  int(2)
  [1]=>
  int(5)
  [2]=>
  int(6)
  [3]=>
  int(11)
  [4]=>
  int(15)
  [5]=>
  int(21)
  [6]=>
  int(23)
  [7]=>
  int(25)
  [8]=>
  int(32)
  [9]=>
  int(43)
  [10]=>
  int(54)
  [11]=>
  int(65)
  [12]=>
  int(82)
}

の から, のキー の が され, べ えに したことが かる.
のアルゴリズムが のキー を の きさで さいものから きいものに べ えるとしたら、 に きいものから さいものまでどのように しますか?
です. を1つ すればいいです. のようにします.
';
var_dump($demo_array);
echo '
';
:
array(13) {
  [0]=>
  int(82)
  [1]=>
  int(65)
  [2]=>
  int(54)
  [3]=>
  int(43)
  [4]=>
  int(32)
  [5]=>
  int(25)
  [6]=>
  int(23)
  [7]=>
  int(21)
  [8]=>
  int(15)
  [9]=>
  int(11)
  [10]=>
  int(6)
  [11]=>
  int(5)
  [12]=>
  int(2)
}

こうして、 に を えました.

のコードをよく すると, を する のある が される.そう、これも の の なポイントで、このテクニックは につけて、 で じように の に うことができます.
ここではこれについて しお しします.
:
、A、Bの2つの があり、その を する があります.
を ると、まず を えるかもしれませんが、 すると、まず に しても、そのうちの1つが ず きされます.これにより、3 の Cを し、AまたはBの を に することで、 を することができます.
$c = $a; //   
$a = $b; // b a
$b = $c; //    a   b

: は 3の を としないで、 A、Bの の に することができて、substr()、str_を りることができますreplace()などの は、ここでは のソートを しているので、あまり びていません.
まとめ
のソートについてはこれだけですが、まとめると、 に2つです.
  • サイクル
  • キー
  • この2つを させることができれば、 にOKです.もちろん、 のソートに するアルゴリズムはたくさんありますが、ここはその1つにすぎません. のある は で することができます.