私たちが学校にいたとき、先生はプログラムデータを並べ替えるアルゴリズムがたくさんあると教えてくれました。実際、バブルアルゴリズムは一般的に使用される並べ替えアルゴリズムです。今度は PHP を使用してバブルソートを実装し、それを以下に記録します。
例1
コードは次のとおりです |
コードをコピー |
/**
* バブルソート(1次元配列)
* ペアごとにソートするデータ要素のサイズを比較し、2 つのデータ要素の順序が逆転していることが判明した場合は、逆転したデータ要素がなくなるまで交換します。
* ソートされた配列 R[1..N] が垂直に組み立てられ、各データ要素が重み付けされたバブルとみなされ、その配列が下から上にスキャンされ、原則に違反するものはすべてスキャンされます。これを何度も繰り返してください。
* 最後の 2 つの気までは、上部が軽く、下部が重くなります。
*/
関数 bubble_sort($arr) {
$count = count($arr);
If($count = 0 || is_array($arr)) {
echo 'NOT NULL ARRAY';
false を返す;
}
for($i = 0; $i
$flag = 1;
for($j = $count - 1; $j > $i; $j--) {
If($arr[$j]
$arr[$j] = $array[$j - 1];
if (1 == $flag)
{
echo $i,'ソートを完了';
休憩;
}
}
}
戻り $arr;
}
例 2
コードは次のとおりです |
コードをコピー |
//効率的なソート
//バブルソート < 選択ソート <
$arr = 配列(-1,10,99,89,77,101,3,4,5,22,11,56,32);
//バブルソート方法
$flag = false
関数 bubbleSort($myarr)
{
$_temp = 0;
for ($i=0;$i
for ($j=0;$j
// 前の数値が後の数値より大きい場合、2 つの数値が交換されます
If ($myarr[$j] > $myarr[$j+1])
$_temp = $myarr[$j];
$myarr[$j] = $myarr[$j+1];
$myarr[$j+1] = $_temp;
$flag = true;
//効率を向上させるために使用されるフラグを立てます
if (!$flag)
エコー「すでに注文された配列」。
。
$flag = false;
$myarr を返します。
}
// そのまま出力します
関数ダンプ($string)
{
エコー " ";
print_r($string);
エコー " ";
}
ダンプ(バブルソート($arr));
?>
http://www.bkjia.com/PHPjc/633162.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/633162.html
技術記事
私たちが学校にいたとき、先生はプログラムのデータを並べ替えるアルゴリズムがたくさんあると教えてくれました。実際、バブル アルゴリズムはよく使われる並べ替えアルゴリズムです。次のメモは PHP を使用します。
|
|