前の記事「PHP 配列学習: 与えられた 2 つの数値間のすべての共通因子と最大公約数を返す 」では、与えられた 2 つの整数 a と b を返すための配列メソッドの使用について紹介しました。因数と最大公約数法です。今回は、PHP 配列について学習し、PHP を使用してバブル ソートを実装する方法と、バブル アルゴリズムを使用して配列要素を昇順にソートする方法を紹介します。
まずは理解しましょうバブルアルゴリズム(バブルソート)とは何ですか?
バブルソート (バブルソート) は、ちょうど炭酸飲料の二酸化炭素の泡のように、小さな要素が交換 (昇順または降順に並べられる) によってシーケンスの先頭にゆっくりと「浮く」ためです。最終的には上に浮き上がってくるので、「バブルソート」と呼ばれています。
アイデア:
条件が満たされる場合、隣接する 2 つの要素を比較します (最初の要素が 2 番目の要素より大きい、または最初の要素が 2 つの要素より大きい)小)を交換してください。そうしないと動きません。
次に、次の 2 つの隣接する要素を比較し、条件が満たされる場合は交換します。条件が満たされない場合は、要素は変更されません。
隣接する要素のすべてのペアに対して同じことを行います。最初の最初のペアから始めて、最後の最後のペアで終わります。最後の要素は最大 (最小) の数値である必要があります。
ループ操作を順番に続けると、最後の要素が一番下に固定されます。
バブル アルゴリズムを使用して配列要素を昇順に並べ替えます:
このような配列があります:
$arr = array('23','4','0','3','2','24','20');
配列には 7 つの要素があります。昇順ソート、つまり小さいものから大きいものへのソートを実装するため、実行手順は次のとおりです。
ループの最初のラウンド:
最初の要素 23 と 2 番目の要素 4 の比率。23 は 4 より大きいため、交換操作が実行されます。
2 番目の要素 (この時点では 23) が 3 番目の要素と比較されます。要素 0、23 は 0 より大きいため、交換操作が実行されます。 操作 --- 23 が 3 番目の要素になります。
3 番目の要素 (この時点では 23) と、 4 番目の要素はまだ 3 より大きいため、交換操作を実行します--- 23 が 4 番目の要素になります
4 番目の要素 (この時点では 23) はまだ 5 番目の要素 2 より大きいです、交換演算を実行します---23 が 5 番目の要素になります
5 番目の要素 (この時点では 23) が 6 番目の要素 24 と比較されます。23 は 24 より小さいため、いいえ交換演算が実行されます。6 番目の要素はまだ 24
6 番目の要素 (この時点では 24) が 7 番目の要素 20 と比較されます。24 は 200 より大きいため、swap 演算は実行されます。が実行されます---24 が 7 番目の要素になります
循環比較のラウンドの後、最大の数値が下に沈みます。小さな数字が徐々に上に現れます。
この時点の配列要素: 4、0、3、2、23、20、24
2 回目のループ:
最初 最初の要素 4 と 2 番目の要素 0 の比率。4 は 0 より大きいため、交換操作が実行されます---4 が 2 番目の要素になります
2 番目の要素(今回は 4) 3 番目の要素 3 と比較します。4 は 3 より大きいため、交換操作を実行します---4 が 3 番目の要素になります
3 番目の要素 (これtime is 4 ) はまだ 4 番目の要素 2 より大きいです。交換操作を実行します---4 が 4 番目の要素になります
4 番目の要素 (今回は 4) と 5 番目の要素要素の 23 に対する比率は、4 が 23 より小さいため、交換操作は実行されません。5 番目の要素は 23 のままです。
5 番目の要素 (この時点では 23) 6 番目の要素 20 の比率。23 は 20 より大きいため、交換操作を実行します - 23 が 6 番目の要素になります
6 番目の要素 (今回は 23) と 7 番目の要素 24 の比率より小さいため、交換操作は実行されません。7 番目の要素はまだ 24
この時点で、配列要素は 0、3、2、4、20、23、 24
....
など、最終的な配列要素は次のとおりです: 0、2、3、4、20、23、24
見てみましょう実装方法:
$arr[$j+1]) { $data = $arr[$i]; $arr[$i] = $arr[$j+1]; $arr[$j+1] = $data; } } } return $arr; } echo ""; print_r(BubbleSort($arr));ログイン後にコピー
出力結果:
わかりました。他に知りたいことがあれば、ここをクリックしてください。 。 → →php ビデオ チュートリアル
最後に、PHP 配列に関する無料のビデオ チュートリアルをお勧めします。PHP 関数 配列 配列関数のビデオ説明、ぜひ学んでください。
以上がPHP の配列学習では、バブル アルゴリズムを使用して要素を昇順に並べ替えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。