冒泡排序算法的运作如下:
先来一起看一下经典排序算法冒泡排序,冒泡排序(Bubble Sort),首先看实现过程:
<?php
/**
* 冒泡排序
* ------------------------------------------------
* 分析:想冒泡一样,每次从数组当中,冒一个最大的数出来
* -------------------------------------------------
* (从小到大排序)存在10个不同大小的气泡,有底到上把较小的气泡逐步的向上升,
* 这样经过遍历一次最小气泡就会被上升到顶部(下表为0)。
* 然后再从底至上地这样升,循环直至十个气泡大小有序。
* 在冒泡排序中,最重要的思想是两两比较,将两者较少的升上去
*/
/**
* BubbleSort
* @param array $container
* @return array
*/
function BubbleSort(array $container) {
$count = count($container);
for ($i = 1; $i < $count; $i++) {
for ($j = 0;$j < $count - $i; $j++) {
if ($container[$j] > $container[$j + 1]) {
$temp = $container[$j];
$container[$j] = $container[$j + 1];
$container[$j + 1] = $temp;
}
}
}
return $container;
}
var_dump(BubbleSort([4, 21, 41, 2, 53, 1, 213, 31, 21, 423]));
//array (size=10)
// 0 => int 1
// 1 => int 2
// 2 => int 4
// 3 => int 21
// 4 => int 21
// 5 => int 31
// 6 => int 41
// 7 => int 53
// 8 => int 213
// 9 => int 423