PHPバブルソートアルゴリズムの詳細
前言
バブルソートとは、隣接する2つの数を順番に比較し、最後の2桁までサイズに応じてソートすることを意味します.ソート中は常に小数を前に、大数を後ろに、気泡を上昇させることに相当するので、泡ソートと呼ばれます.しかし、実際の過程では、自分の必要に応じて逆に使って、大きな木を前に置いて、小数を後ろに置いてもいいです.
実戦
直接コード:
バブルソートとは、隣接する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つにすぎません. のある は で することができます.