php氣泡排序詳解筆記
阿新 • • 發佈:2019-02-13
冒泡
/* * 氣泡排序(從小到大) * 介紹: * 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。 * 思路: * 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 * 對第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);