为了熟悉 Erlang,我正在尝试编写自己的冒泡排序算法。现在,我的模块中有以下代码:
-module(mysort).
-export([bubblesort/1]).
bubblesort(L) ->
sort_sequence(L, []).
sort_sequence([H1|[H2|T]], Sorted) ->
if H2 >= H1 ->
sort_sequence(T, Sorted ++ [H1, H2]);
H2 < H1 ->
sort_sequence(T, Sorted ++ [H2, H1])
end;
sort_sequence([H|T], Sorted) ->
Sorted ++ H;
sort_sequence([], Sorted) ->
Sorted.
首先:请不要给我的代码建议 我想自己弄清楚^^
问题是:如果我说mysort:bubblesort([2,1,3,4,5]).
输出如我所料:[1,2,3,4,5]
但如果我说mysort:bubblesort([2,1,3,5,4]).
输出是:[1,2,3,5|4].
我唯一的问题是:这是什么“|” 在列表项之间签名意味着什么?!
谢谢你们!