是否有一种方法可以按升序或降序对列表中的所有元素进行排序?
> List1 = [4,3,2,6,1,5]. > sort(List1) == [1,2,3,4,5,6] > true
aydmsdu91#
lists:sort([2,3,6,5,1,7,13,4]).
或
lists:sort(ListToSort).
将返回一个按升序排序的整数列表。感谢@Dogbert指出了显而易见的问题。
pbossiut2#
我们有很多排序的方法,所以有时候你可以自己做。这是我学习Erlang的方法:)
-spec sort(List) -> SortedList when List :: [integer()], SortedList :: [integer()]. sort([Pivot | Tail]) -> {Smaller, Larger} = partition(Pivot, Tail, [], []), sort(Smaller) ++ [Pivot] ++ sort(Larger); sort([]) -> []. partition(Check, [Head | Tail], Smaller, Larger) -> case Head =< Check of true -> partition(Check, Tail, [Head | Smaller], Larger); false -> partition(Check, Tail, Smaller, [Head | Larger]) end; partition(_, [], Smaller, Larger) -> {Smaller, Larger}.
2条答案
按热度按时间aydmsdu91#
或
将返回一个按升序排序的整数列表。感谢@Dogbert指出了显而易见的问题。
pbossiut2#
我们有很多排序的方法,所以有时候你可以自己做。这是我学习Erlang的方法:)