用erlang写一段冒泡程序
时间: 2024-05-27 22:10:35 浏览: 67
好的,以下是用 Erlang 写的冒泡程序:
bubble_sort(List) ->
bubble_sort(List, length(List)).
bubble_sort(List, 1) ->
List;
bubble_sort(List, Length) ->
SwapFlag = false,
SortedList = lists:foldl(fun(I, Acc) ->
case Acc of
[A,B|Rest] when A>B ->
[B,A|Rest];
[A,B|Rest] ->
[A,B|bubble_sort(Rest, Length-1)],
SwapFlag = true;
_ -> Acc
end
end, List, List),
case SwapFlag of
true ->
bubble_sort(SortedList, Length);
false ->
SortedList
end.
这个程序可以对传入的列表进行排序,其中 bubble_sort 是主函数,它会调用另一个辅助函数 bubble_sort/2,这里的长度 Length 表示还需要几轮冒泡排序,每轮冒泡会把当前列表中相邻的两个元素进行比较,如果顺序不对就交换它们,直到整个列表都有序为止。
阅读全文