PHPバブルソート(Bubble Sort)アルゴリズムの詳細説明
Nov 11, 2016 am 09:26 AMまえがき
バブルソートとは、大まかに言うと、隣接する2つの数値を順番に比較し、最後の2桁までの大きさに応じてソートすることです。仕分けの際、常に小さい数字が前方に、大きな数字が後方に配置されることになり、泡が上がっていくのと同じことになるため、バブルソートと呼ばれています。しかし実際には、必要に応じて、大木を前方に配置し、小数点を後方に配置することもできます。
実戦
ダイレクトコード:
1 2 3 4 5 6 7 8 9 10 |
|
実行結果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
上記の結果から、配列内のキー値の順序が変更され、ソートが成功していることがわかります。
上記のアルゴリズムが値のサイズに応じて配列内のキー値を小さい値から大きい値に並べ替える場合、逆に大きい値から小さい値へ演算するにはどうすればよいでしょうか?
非常に簡単で、次のように比較記号を変更するだけです:
1 2 3 4 5 6 7 8 9 10 11 |
|
実行結果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
これで、簡単に順序を変更できます。
拡張
上記のコードをよく見ると、注目すべき箇所が 1 つあります。それは、スワップ変数の箇所です。はい、これはバブリングの核心でもあり、このテクニックをマスターすれば、将来的には他の場所でも使用できます。
ここで少しお話します。
原則:
今、2 つの変数 A と B があり、要件はそれらの値を交換することです。
タイトルを見ると直接代入を思い浮かべるかもしれませんが、直接代入すると誰が先に代入しても必ずどちらかが上書きされてしまいます。ここから3つ目の変数が考えられます。 C、必要な目標を達成できるように、A または B に値を一時的に保存します。
1 2 3 |
|
注: 実際、3 番目の変数は必要ありません。substr()、str_replace() などのメソッドを使用して、A 変数と B 変数の値を交換することもできます。ここではバブルソートを紹介しているので、これはあまり拡張ではありません。
まとめ
バブルソートにはたくさんありますが、まとめると次の 2 つの主要なポイントがあります:
ループ比較
この 2 つのポイントを完了できれば、もちろん、バブルソートのアルゴリズムは他にもたくさんありますが、興味のある方はそのうちの 1 つを自分で学習してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









