Wikipediaのバブルソートアルゴリズムを元に作成
■概要
全ての要素に関して、隣接する要素と比較し順序が逆であれば入れ替える。これを要素数-1回繰り返すことでソートを行なう。
なお、この繰り返しは、入れ替えが起こらなくなった時点で(それ以降は何度繰り返しても変化が起こらなくなるので)中断することができる。
※サンプルには、上記中断の処理はなし。
Bubble_Sort.php
<?php
$arr = array(3,2,1,4,15,18,13,99,77,66,1,100,0);
var_dump(bubble_sort($arr));
function bubble_sort($array)
{
// 要素数回繰り返し
for($i = 0; $i < count($array); $i++)
{
// 要素数-1回繰り返し
for($n = 1; $n < count($array); $n++)
{
// 隣接要素を比較し大小が逆なら入替える
if($array[$n-1] > $array[$n])
{
$temp = $array[$n];
$array[$n] = $array[$n-1];
$array[$n-1] = $temp;
}
}
}
return $array;
}