1. 程式人生 > >php四種基礎排序(基礎演算法)----①氣泡排序法

php四種基礎排序(基礎演算法)----①氣泡排序法

氣泡排序法:

 顧名思義,如冒泡泡一樣,每次將陣列中最大的數冒出來

  舉例: 
    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/>";