ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルで配列をソートする 3 つの方法

PHP_PHP チュートリアルで配列をソートする 3 つの方法

WBOY
リリース: 2016-07-13 17:50:35
オリジナル
862 人が閲覧しました

1.バブル選別方法
説明: 最大の数を見つけて最後まで並べて探し続けます

例:
$arr = 配列(3,5,-1,0,2);
for($i=0;$i for($j=0;$j If($arr[$j]>$arr[$j+1]){
$temp = $arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
理解:
3、5、-1、0、2
//先頭の数値から遡って比較し、次の数値より大きい場合は、次の数値で位置を調整します
//最初は 3 が 5 未満で、その後は変更されません
// 2 回目は、5 が -1 より大きいため、
になります。 3、-1、5、0、2
// 3 回目は、5 が 0 より大きいです
3、-1、0、5、2
// 4 回目、5 は 2 より大きいです
3、-1、0、2、5
これで内側のループが完了します。この時点で最後の番号はソートされ、次回は参加しません。 3、-1、0、2、5 2 番目の外側ループが始まります。 1 回目: 3 は -1 より大きいです
。 -1、3、0、2、5
2 回目: 3 は 0 より大きいです
-1、0、3、2、5
3 回目: 3 は 2 より大きいです
-1、0、2、3、5
これで次の 2 桁の並べ替えが完了します。以下同様です
-1、0、2、3、5
2. 選択ソート方法 説明: 最初の数値が最小の数値であると仮定し、次の数値をそれと順番に比較し、仮定した数値が最小の数値でない場合は、その位置を次の最小の数値と入れ替えます
。 $arr=array(2,1,-1,3,0);
for($i=0;$i $minval = $arr[$i];
$minindex = $i;
for($j=1+$i;$j If($arr[$j] $minval = $arr[$j];
$minindex = $j;
}
}
$temp = $arr[$i];
$arr[$i] = $arr[$minindex];
$arr[$minindex] = $temp;
}
理解:
2、1、-1、3、0
//最初の数値 2 が最小値であると仮定し、最小数値を見つけるために後続の数値を 2 と比較します
プロセス:
1 が 2 より小さい場合、minval=1
-1 が 1 より小さい場合、minval=-1
3 は -1 より大きく、変化しません
0 は -1 より大きく、変化しません
これで、配列内の最小の数値、-1 が見つかりました
-1 と 2 の位置を入れ替えて、最初の数字の並べ替えを完了します
したがって、配列は
になります -1、1、2、3、0
最初の番号 -1 はすでに順序になっているため、比較には参加せず、後ろに進みます
ここで minval=1 と仮定します
2 は 1 より大きく、変化しません
3 は 1 より大きく、変化しません
0 が 1 より小さい場合、minval=0 になります
1サイクルが完了したので、0と1の位置を入れ替えて2番目の数字の並べ替えを完了します
したがって、配列は
になります -1、0、2、3、1
//以下のプッシュメソッドは上記と同じです。 。 。

3. 挿入ソート方法の説明: まず、配列内の最初の数値が別個の順序配列であると仮定し、次に次の数値をそれと比較します [ここで、私が成長するにつれて、それはそれらになります]。次の数値が以下の場合想定される数字を計算し、小さい方の数字を後ろに移動し、最後にその数字を前に移動します
$arr=array(2,1,-1,3,0);
for($i=1;$i $insertval=$arr[$i];
$insertindex = $i-1;
While($insertindex>=0 && $insertval $arr[$insertindex+1]=$arr[$insertindex];
$insertindex--;
}
$temp = $arr[$i];
$arr[$insertindex+1]=$insertval;
}
理解:
2、1、-1、3、0
//初めて、挿入する数値 1 を insertval として保存し、insertval と 2 を比較します。 1 は 2 より小さいので、2 を後ろに移動して次の図になります
2、2、-1、3、0
//この時点では、2の前に数字はなく、insertindex=0なので比較が完了し、見つかった位置にinsertvalを挿入します。以下のようになります
1、2、-1、3、0
//このとき、1と2は順序付き配列になります
//2回目は、まず挿入する数値-1をinsertvalとして保存し、次にinsertvalを2と比較します。-1は2より小さいので、2を後ろに移動して次の図になります
1、2、2、3、0
//このとき、insertvalと1を比較し、-1が1未満の場合は-1を戻して以下の図になります(挿入する数値と前の順序付けされた配列を比較する処理です)
1、1、2、3、0
//この時点で、insertindexが終わっているので、この位置にinsertvalを挿入します
-1、1、2、3、0
//以下のメソッドは上記の通りです



Bell のテクノロジー ブログからの抜粋

www.bkjia.com本当http://www.bkjia.com/PHPjc/478255.html技術記事 1. バブルソート方法の手順: 最大の数値を見つけて最後まで並べてから、例を探し続けます。 $arr = array(3,5,-1,0,2); for($i=0; $icount( $arr)-1;$i++){ for($j=0;$jcount($arr)-1-$i...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート