検索
ホームページphp教程php手册PHP で配列をソートする 3 つの方法

PHP で配列をソートする 3 つの方法

Jun 13, 2016 pm 12:00 PM
php1つバブル共有現れる配置選別配列方法ほとんど説明する

1. バブルソート方法
手順: 最大の数を見つけて最後まで並べて、続けて検索します。

例:

コードをコピーします コードは次のとおりです。


$arr = array(3,5,-1,0,2);
for($i) =0;$ifor($j=0;$jif ($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 番目の外側ループが開始されます。 初回: 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); $i=0;$i$minval = $arr[$i] ;
$minindex = $i; 1 $i;$jif($arr[$j]$minval = $arr[$j]; $minindex = $j;
}
$temp = $arr[$i]
$arr [$i] = $arr[$minindex]; $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]

}
$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と2。1を比較し、-1が1より小さいので、-1を戻して次の図になります(挿入する数値と前の順序配列を比較する処理です)
1, 1 , 2, 3, 0
//この時点で、insertindexが終わっているので、この位置にinsertvalを挿入します
-1, 1, 2, 3, 0
//以下の方法です。上記のように
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません