冒泡排序
<?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);