冒泡排序
<?php
/*
冒泡排序是非常容易理解和实现,以从小到大排序举例:
设数组长度为N。
1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。
2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。
3.N=N-1,如果N不为0就重复前面二步,否则排序完成
*/
function b_sort($arr) {
$len = count($arr);
//3
foreach ($arr as $key => $value) {
//2
for ($i = 1; $i< $len-$key; $i++) {
//1
if ($arr[$i] < $arr[$i - 1]) {
$tmp = $arr[$i - 1];
$arr[$i - 1] = $arr[$i];
$arr[$i] = $tmp;
}
}
}
return $arr;
}
$arr = [1,21,2,3,333,4,23];
$res = b_sort($arr);
print_r($res);