1. 程式人生 > >php氣泡排序詳解筆記

php氣泡排序詳解筆記

冒泡

/*
 * 氣泡排序(從小到大)
 * 介紹:
 * 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。
 * 思路:
 *     比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
 *     對第0個到第n-1個數據做同樣的工作。這時,最大的數就“浮”到了陣列最後的位置上
 *     針對所有的元素重複以上的步驟,除了最後一個
 *     持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較
 * 步驟:  假如10個數字
 *       【
 *         先找出10個數字中最大的丟擲去,剩下9個數字
 *         再找出9個數字最大的跑出去,  剩下8個數字
 *          以此類推……
 *        】
 *       怎麼找出一組數最大數字(冒泡):
 *         【
 *           將第1個與第2個比,大的往後排
 *           將第2個與第3個比,大的往後排
 *           以此類推……
 *           最後一個就是最大的
 *          】

程式碼

$order_array=array(
5,4,3,6,7,1,2,10,8,9
);
function bubble_order($arr){
    //得到長度
    $count_num=count($arr);

    for($k=1;$k<$count_num;$k++){

        //對長度越來越少的一組資料 找出最大讓其浮到最後

        for($i=0;$i<$count_num-$k;$i++){

            if($arr[$i]>$arr[$i+1]){//相鄰比較
                $tem=$arr
[$i]; $arr[$i]=$arr[$i+1]; $arr[$i+1]=$tem; } } } return $arr; } $new_order_arr=bubble_order($order_array);