ホームページ  >  記事  >  バックエンド開発  >  PHPバブルソート例の共有

PHPバブルソート例の共有

小云云
小云云オリジナル
2018-02-27 11:24:341394ブラウズ

原則: 一連のデータについて、隣接するデータのサイズを比較し、値の小さいデータを前に、値の大きいデータを後ろに置きます。 (以下はすべて小さい順、つまり大きい順に並べています)

例:$arr = array(6, 3, 8, 2, 9, 1);

$arrには6つのデータがあり、それらをペアで比較します。サイズは次のとおりです。比較ラウンドの数と各ラウンドの比較数に注意してください

ソートの最初のラウンド:

最初の比較 6 と 3 の比較結果: 3 6 8 2 9 1

2回目の比較6と3の比較結果: 3 6 8 2 9 1

8と2の3回目の比較結果: 3 6 2 8 9 1

8と9の4回目の比較結果: 3 6 2 8 9 1

9と1を比較 比較結果: 3 6 2 8 1 9

1回目の比較のまとめ: 1. 5回の並べ替えと比較の1回目では、小さいものから大きいものへの順序は得られませんでした 2.各比較は過去に遡る大きな数値に基づいているため、比較が完了すると、最大の数値が最後にランク付けされると判断できます (9 はすでに泡立っているため、次の比較ラウンドでは比較する必要はありません) )

2回目の並べ替え:

1回目の比較 3と6の比較結果: 3 6 2 8 1 9

2回目の6と2の比較結果: 3 2 6 8 1 9

3回目の比較result of 6 and 8: 3 2 6 8 1 9

8 と 1 の 4 回目の比較 比較結果: 3 2 6 1 8 9

2 回目の比較のまとめ: 1. 2 回目の並べ替えと比較4回、小さい順から大きい順が得られなかった 2. 8が泡立ち、次のラウンドでは比較する必要がない 8

3回目の並べ替え:

3と2の最初の比較結果: 2 3 6 1 8 9

2 回目の 3 と 6 の比較結果: 2 3 6 1 8 9

3 回目の 6 と 1 の比較結果: 2 3 1 6 8 9

3 回目の比較の要約: 1. 3 回目3 回の並べ替えと比較で、小さい順から大きい順は得られませんでした。 2. 6 が泡立ち、次の比較 6 では使用されませんでした。

4 回目の並べ替え:

最初の比較 2 と。 3 つの比較結果: 2 3 1 6 8 9

2 番目の比較 3 と 1 の比較結果: 2 1 3 6 8 9

4 回目の比較の要約: 1. 4 回目の並べ替えと 2 回の比較、いいえ小さいものから大きいものへの順序が得られました 2. 3 が出現し、次のラウンドでは 3 を比較する必要はありません

5 回目の並べ替え:

1 つの比較 2 と 1 の比較結果: 1 2 3 6 8 9

5回目の比較のまとめ: 1. 5回目の並べ替えと1回の比較では、小から大への並べ替えは得られませんでした 2. 2が泡立ちました。1は1つしか残っていないため、必要はありませんこの時点で、5 回のソーティングを経て、ソート全体が完了しました。

上記の 5 ラウンドのソートといくつかの比較を通じて、次の結論を推測する理由があります:

長さ N の配列の場合、N-1 ラウンドをソートする必要があり、各 i ラウンドは N-i と比較する必要があります。回。これには二重ループ ステートメントを使用できます。外側のループはループ ラウンドの数を制御し、内側のループは各ラウンドの比較の数を制御します。

<?php 

  function order($arr){
      $count = count($arr);
      $temp = 0; 
      //外层控制排序轮次
      for($i=0; $i<$count-1; $i++){
          //内层控制每轮比较次数
          for($j=0; $j< $count-1-$i; $j++){
                if($arr[$j] > $arr[$j+1]){
                    $temp        = $arr[$j];
                    $arr[$j]     = $arr[$j+1];
                    $arr[$j+1]   = $temp;
               }
          }
      } 
      return $arr;
     }     


 $arr= array(6,3,8,2,9,1);
$res =  order($arr);
var_dump($res);

関連する推奨事項:

PHP バブル ソートを実装する複数のソリューション

php バブル ソート配列の小さいものから大きいものへの並べ替え方法

php 配列バブル ソート アルゴリズムのサンプル コード

以上がPHPバブルソート例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。