php四種基礎排序(基礎演算法)----①氣泡排序法
阿新 • • 發佈:2019-02-16
氣泡排序法:
顧名思義,如冒泡泡一樣,每次將陣列中最大的數冒出來
舉例:
2,3,1.
第一次先將3冒出來,變成--------> 2,1,3
第二次再講2冒出來,變成--------->1,2,3
至此 排序結束 結果為 1,2,3.
程式碼如下:
<?php$arr=array(10,57,12,45,78,32,65,94,14);
function maopao($arr)
{
//求出該陣列的長度
$len=count($arr);
//最外層的for迴圈 控制需要冒泡的輪數
//讓i=1,是為了內層的for迴圈中k的條件
for($i=1;$i<$len;$i++)
{ //該層迴圈用來控制每輪 冒出一個數 需要比較的次數
//第一輪時的資料為 $arr[$k=0]和$arr[$k+1=1]時比較,如果前面的數大於後面的數,那麼兩個數交換位置,大的數就在後面了,前面的數就在前面
//$k<$len-$i是因為至少內層for迴圈後返回外層繼續迴圈,$len-$i就是控制每輪冒出一個數,兩兩相對比
for($k=0;$k<$len-$i;$k++)
{
if($arr[$k]>$arr[$k+1])
{
$tmp=$arr[$k+1];
$arr[$k+1]=$arr[$k];
$arr[$k]=$tmp;
//採用一種更簡單高階的方法
//list($array[$k+1], $array[$k]) = array($array[$k], $array[$k+1]);
}
}
return $arr;
}
//使用了資料格式化,方便清楚的看到資料
echo "<pre/>";