ホームページ >バックエンド開発 >PHPの問題 >PHP の配列学習では、バブル アルゴリズムを使用して要素を昇順に並べ替えます。

PHP の配列学習では、バブル アルゴリズムを使用して要素を昇順に並べ替えます。

青灯夜游
青灯夜游オリジナル
2021-08-16 19:51:193128ブラウズ

前の記事「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 の配列学習では、バブル アルゴリズムを使用して要素を昇順に並べ替えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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