ホームページ >バックエンド開発 >PHPの問題 >PHPでバブルソートを使用するにはどうすればよいですか?

PHPでバブルソートを使用するにはどうすればよいですか?

慕斯
慕斯オリジナル
2021-06-15 17:54:592059ブラウズ

前回の記事では「PHPのエラー処理とは何ですか?」についてご紹介しました。エラーコード?トリガーが間違っていますか? 》, この記事では引き続き、PHP でバブル ソートを使用する方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHPでバブルソートを使用するにはどうすればよいですか?

配列ソート アルゴリズム。

バブル ソート

バブル ソート (バブル ソート) は、比較的単純なアルゴリズムです。コンピューターサイエンスにおけるソートアルゴリズム。

ソート対象のシーケンスを繰り返し訪問し、一度に 2 つの要素を比較し、順序が間違っている場合はそれらを交換します。

配列を訪問する作業は、交換が必要なくなるまで繰り返され、これは配列がソートされたことを意味します。

バブルソートのアルゴリズムのアイデア:

#1) 隣接する要素を比較します。最初のものが 2 番目のものより大きい場合は、両方を交換します。 。

2) 隣接する要素の各ペアに対して、最初の最初のペアから最後の最後のペアまで同じ作業を実行します。この時点では、最後の要素が最大の数値である必要があります。

3) 最後の要素を除くすべての要素に対して上記の手順を繰り返します。 。

4) 比較する数値のペアがなくなるまで、要素の数を減らしながら上記の手順を繰り返します。

最初に配列を定義し、次に最大値を右端に配置する方法を見つけます。for ループを使用します。次のようなコードを例に挙げてみましょう:

<?php 
//数组排序算法:冒泡排序
$arr = array(1,4,2,9,7,5,8);
//想办法将最大的值放到最右边去
for($j =0,$len = count($arr); $j < $len - 1;$j++){
//判断:两两相比
if($arr[$j] > $arr[$j+1]){
//左边比右边大:交换
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
 }
}
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);

実行結果は以下のとおりです :

PHPでバブルソートを使用するにはどうすればよいですか?

では、上記のコードを一度だけ実行するにはどうすればよいでしょうか? 最大値を求めることができる以下のコードを繰り返し実行させます。

<?php 
//数组排序算法:冒泡排序
$arr = array(1,4,2,9,7,5,8);
for($i=0,$len = count($arr);$i < $len;$i++){
//想办法将最大的值放到最右边去
for($j =0,$len = count($arr); $j < $len - 1;$j++){
//判断:两两相比
if($arr[$j] > $arr[$j+1]){
//左边比右边大:交换
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
 }
}
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);
}

実行結果は次のとおりです:

PHPでバブルソートを使用するにはどうすればよいですか?

推奨される学習: 「PHP ビデオ チュートリアル

以上がPHPでバブルソートを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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