基本概念
- 依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。
- 重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。
例子
<?php
$a1 = array(2,9,0,7,1);
function bubble($arr){
$num = count($arr);
for($i = 0;$i < $num;$i++){
for($j = 0;$j < $num - 1;$j++){
if($arr[$j] > $arr[$j + 1]){
//较小的值赋值给$tmp
$tmp = $arr[$j + 1];
$arr[$j + 1] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
return $arr;
}
var_dump(bubble($a1));
输出的结果为:
D:\wwwroot\test\test.php:18:
array (size=5)
0 => int 0
1 => int 1
2 => int 2
3 => int 7
4 => int 9