我需要對數組進行排序,但不是經典排序。而且,在Erlang! 我在談論數組,其中每個元素是兩個整數的數組。在Erlang中對數組進行排序
例如: [[6,0],[12,1],[5,2],[10,3]]
我需要這個陣列中的第一個元素的功能進行排序每個陣列 像這樣:
[[5,2],[6,0],[10,3],[12,1]]
首先,我與此成功:
-module(insertSort).
-export([insertion/1,insert/1,insert/2]).
insertion(L) -> lists:foldl(fun insert/2, [], L).
insert([]) -> [].
insert(X,[]) -> [X];
insert([],Y) -> [Y];
insert(X= [X1,_], L= [[H1,_] | _]) when X1 =< H1 -> [X|L];
insert(X,[H|T]) -> [H|insert(X, T)].
有時,數組被排序。但我有兩個例子,給我兩個奇怪的情況:
第一: [10,3],[5,2],[12,1],[6,0] 成爲: [[[5,2],[6,0],[10,3],[12,1]]]]
不錯,但我不能用那個奇怪的建築。看起來我有一個數組,裏面有一個數組,裏面有我所有的兩個元素數組。
第二: [[5,16],[11,12],[9,8],[16,4]] 成爲: [[[5,16],「\噸\ b」, 「符\ v \ F」,[16.4]]]
是的,真的,這些\ t \ b ..
我在二郎一個初學者,但我成功做了很多東西我自己。 我的項目是關於Shank算法,試圖解決y = a^x mod n其中給出了y,a和n。
你能幫我告訴我,我的insertSort模塊有什麼問題嗎?
非常感謝,對不起我的英語,我盡力做到最好。
請注意,「\ t \ b」只是另一種寫作方式[9,8]。他們的意思完全一樣。同樣,「\ v \ f」與[11,12]相同。只是如果列表由可打印字符代碼組成,那麼shell會將其打印爲字符串。 – RichardC
謝謝@RichardC的啓發! –
我無法在我的手機上試用它,但我認爲'list:sort(L).'就是你想要的。 – Pascal