算法原理:
- 冒泡排序是一种稳定的排序算法。
- 冒泡排序,要求必须是枚举数组,且下标是从0开始的正整数。
- 遍历一个数组,在此过程中,依次将相邻的两个元素的值进行大小比较。
- 如果前面的值比后面的大,则将两个元素的值进行位置交换。
- 这个过程一直比较到最后,数组中的最大值一定放在最后位置了。
- 再将剩下的元素,再进行大小比较,将此过程中最大值挪到最后第2个位置。
- 再将剩下的元素,再进行大小比较,将此过程中最大值挪到最后第3个位置。
- ……
- 最后,直到没有元素再进行比较,则数组顺序就排好了。
代码实现:
//冒泡排序算法
function order($numbers) {
$len = count($numbers);
for ($i = 0; $i < $len - 1; $i++) {
for ($j = 0; $j < $len - 1; $j++) {
//从小到大的顺序排列
if ($numbers[$j] > $numbers[$j + 1]) {
$max = $numbers[$j];
$numbers[$j] = $numbers[$j + 1];
$numbers[$j + 1] = $max;
}
}
}
return $numbers;
}
$arr = array(9, 8, 7, 6, 5, 4, 3, 2, 1);
echo "<pre>";
print_r(order($arr));
echo "</pre><hr />";
结果展示: