PHP には、バブル、選択、挿入、クイックソートという 4 つの基本アルゴリズムがあります
多くの人は、アルゴリズムがプログラムの核心であると言い、プログラムをより良くするための鍵は、アルゴリズムの品質にあります。私はジュニア PHPer ですが、アルゴリズムに関する知識はほとんどありません。ただし、バブル ソート、挿入ソート、選択ソート、クイック ソートの 4 つの基本アルゴリズムを習得する必要があると思います。以下は、私自身の理解に基づいた 4 つの方法の分析です。
要件: バブル ソート、クイック ソート、選択ソート、および挿入ソートを使用して、以下の配列内の値を昇順に並べ替えます。
$arr(1,43,54,62,21,66,32,78,36,76,39);
1. バブルソート法
* アイデア分析: その名の通り、バブリングのように、毎回配列から最大の数が出現する方法です。
* 例: 2,4,1 // 最初のバブルは 4
* * 2,1,4 // 2 番目のバブルは 2
* * 1,2,4 // 最終的にはこのようになります
* コードの実装:
コードをコピー コードは次のとおりです:
$arr=array(1,43,54,62,21,66,32,78,36,76,39);
function getpao ($arr)
{
$len=count($arr);
//ポップアップするバブルを受け取るために空の配列を設定します
//このレイヤー ループは必要なバブルのラウンド数を制御します
for($ i= 1;$i { //このループ層は、各ラウンドで数値を比較する必要がある回数を制御するために使用されます
for($k=0;$k [$k];
$arr[$k]=$tmp;
2. 選択範囲の並べ替え方法:
選択範囲の並べ替え方法のアイデア: 対応する要素を毎回選択し、指定された位置に配置します
コードをコピーします
コードは次のとおりです:
function select_sort($ arr) { //アイデアの二重ループが完了し、外側の層がラウンド数、現在の最小値を制御します。内部コントロール内の比較の数
//$i 現在の最小値の位置、比較する必要がある要素
for($i=0, $len=count($arr); $i $ p = $ i;
// $ j は、$ i の後にどの要素と比較する必要があります。 For ($ j = $ i+1; $ j & lt; $ len; $ j ++) { // $ arr [$ p] は現在知られている最小値です ($ arr [$ p] & gt; $ arrrrrrrrrrrrrr [$j]) { //比較し、より小さい値を見つけて、最小値の位置を記録し、次の比較で、 //既知の最小値を比較に使用する必要があります。
$p = $j;
//最小値の位置が現在の想定位置$ iと異なることがわかった場合、位置は交換できます
$ p] = $ arr [$ i];
3. 挿入ソート方法
挿入ソート方法の考え方: ソート番号をとった配列の指定された位置にソート対象の要素を挿入します。
コードをコピーします
コードは次のとおりです:
function insert_sort($arr) {
//どの部分がソートされているかを区別します
//どの部分がソートされていないかを確認します
//ソートする必要がある要素の 1 つを見つけます
//この要素は 2 番目の要素からのものです最後の要素まで、ソートする必要がある要素です
//ループを使用してマークできます
//i ループは、挿入する必要がある要素を毎回制御します。
//間接的に配列は 2 つの部分に分割されます。添字は現在のもの (左側) より小さく、ソートされたシーケンスです
for($i=1, $len=count($arr) ); $i / / 比較する必要がある現在の要素の値を取得します。
$ i]; //挿入する必要がある要素[$ j];移動する必要のない要素
// すでに配列としてソートされているため、前のものと比較する必要はありません。
休憩。
//Return
Return $arr;
}
4. クイックソート方法
コードをコピーします
コードは次のとおりです:
function Quick_sort($arr) {
//長さ 使用する 使用する 使用する アウト アウト スルーthrough out Through out Through out through off off ‐ ‐ ‐ ‐‐ long‐‐ and,base_num = $arr[0];
//ルーラーを除くすべての要素を走査し、サイズ関係に従って 2 つの配列に入れます
// 2 つの配列を初期化します $left_array = array();// ルーラーより小さいもの $ right_array = array(); // ルーラーより大きいもの ($i=1; $i}} //左側と右側をそれぞれ比較する配列は同じ方法でソートされます//この関数を再帰的に呼び出して、結果を記録し、$ left_array = Quick_sort($ left_array); =quick_sort($right_array);
//左のルーラーと右のルーラーをマージします
return array_merge( $left_array, array($base_num), $right_array);
}
http://www.bkjia.com/PHPjc/824969.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/824969.html技術記事 PHP には、バブル、選択、挿入、クイック ソートという 4 つの基本的なアルゴリズムがあります。プログラムが優れている場合、鍵となるのはアルゴリズムの品質である、と多くの人が言います。として...