Erlang算法一章:冒泡排序

(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次,冒泡排序至此結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章