php冒泡排序詳解筆記

冒泡

 1 /*
 2  * 冒泡排序(從小到大)
 3  * 介紹:
 4  * 它重複地走訪過要排序的數列,一次比較兩個元素,若是他們的順序錯誤就把他們交換過來。
 5  * 思路:
 6  *     比較相鄰的元素。若是第一個比第二個大,就交換他們兩個。
 7  *     對第0個到第n-1個數據作一樣的工做。這時,最大的數就「浮」到了數組最後的位置上
 8  *     針對全部的元素重複以上的步驟,除了最後一個
 9  *     持續每次對愈來愈少的元素重複上面的步驟,直到沒有任何一對數字須要比較
10  * 步驟:  假如10個數字
11  *       【
12  *         先找出10個數字中最大的拋出去,剩下9個數字
13  *         再找出9個數字最大的跑出去,  剩下8個數字
14  *          以此類推……
15  *        】
16  *       怎麼找出一組數最大數字(冒泡):
17  *         【
18  *           將第1個與第2個比,大的日後排
19  *           將第2個與第3個比,大的日後排
20  *           以此類推……
21  *           最後一個就是最大的
22  *          】

代碼

$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);
print_r($new_order_arr);
相關文章
相關標籤/搜索