1. 程式人生 > >氣泡排序演算法 For ERL

氣泡排序演算法 For ERL

(ERL的氣泡排序)Bubble Sorting IN ERLANG


實現原理
1. 從陣列的第一個元素arr[0]開始,兩兩比較arr[n]arr[n+1],如果前面的數大於後面的數arr[n] > arr[n+1],那麼交換兩個元素的位置,把大的數往後移動
2. 依次經過一輪比較以後,最大的數將會被交換到最後的位置arr[n-1]

實現要素:

遞迴法

程式碼

run(OrderedList, []) -> OrderedList;
run(OrderedList, [H|T]) ->
    {Rs, Max} = bubble_run
(H, T, []), run([Max]++OrderedList, Rs). bubule_run(Max, [], T) -> {T, Max}; bubble_run(Max, [H|T], T1) -> case Max >= H of true -> bubble(Max, T, [H|T1]); _ -> bubble(H, T, [Max|T1]) end.

取列表頭作為最大值和②值比較,如果列表頭值>②的值,則不用交換,把尾列表進行遞迴,同時把兩兩比較中最小的值保持到新列表中,目的是要把最大值從列表中分離出來,迴圈n-1次,氣泡排序至此結束