私は長い間 PHP に触れてきましたが、バブル ソート、クイック ソート、バレル ソートの 3 種類しか使用したことがありません。今日はバブル ソートを学びましょう:
バブルソートとは何ですか? 川の泡のように、泡が 1 つずつ表面に出てきます。その原理は、ソートするシーケンスを繰り返し訪問 (トラバース) し、隣接する 2 つのシーケンスを比較することです。数値を並べ替える場合は、大きい数値を右に移動し、すべての数値が小さい値から大きい値の順序を完了するまでたどります。現在の最大値が比較されるたびに、次のラウンドで残りの数値が比較されます。外側のループはラウンド数を制御し、内側のループは比較の要素を制御します。
コードをアップロードする
/**- * バブルソート
- */
- $list = Array(6,8,7,2,3,4,1);
- echo "ソート前";
- print_r($list);
- function mao ($arr){
- for($i=1,$len=count($arr);$i for($k= 0 ,$klen=$len-$i;$k if($arr[$k]>$arr[$k +1] ){
- $temp = $arr[$k];
- $arr[$k] = $arr[$k+1];
- $arr[$k+1] = $temp;
- }
- }
- }
- return $arr;
- }
- echo "
並べ替え後";
- print_r(mao($list));
-
-
コードをコピー
バブルの過程で、私のアイデアが他の人の考えの中にありました。 百度の過程で、別の方法を見て、それが良いと思ったので、書きました。
$list = Array(6,8,7,2,3,4,1);- echo "ソート前";
- print_r($list);
- function mao($arr){
- for($ i=0,$len=count($arr)-1;$i // 内側のループは外側のループに基づいて追加しますレイヤー 1. 2 つの要素の比較を制御するには
- for($k=$i+1;$k if($arr[$i]>$arr[$k] ] ){
- $temp = $arr[$i];
- $arr[$i] = $arr[$k];
- $arr[$k] = $temp;
- }
- }
- }
- return $arr ;
- }
- echo "
並べ替え後";
- print_r(mao($list));
-
-
コードをコピー
私は、後者の書き方に非常に感心しました。なぜなら、前者の書き方は私たちの通常の考え方に基づいているからです。その考え方は非常に興味深いと感じました。
|