Erlang中的快速排序示例
我有一个关于Erlang快速排序实现的问题:Erlang中的快速排序示例,erlang,Erlang,我有一个关于Erlang快速排序实现的问题: qsort([]) -> []; qsort([Pivot|T]) -> qsort([X || X <- T, X < Pivot]) ++ [Pivot] ++ qsort([X || X <- T, X >= Pivot]). qsort([])->[]; qsort([Pivot | T])->qsort([X | | X[Pivot]基本上是将单个元素Pivot放入一个列表,以便与其他两个列表连接。它不
qsort([]) -> [];
qsort([Pivot|T]) -> qsort([X || X <- T, X < Pivot]) ++ [Pivot] ++ qsort([X || X <- T, X >= Pivot]).
qsort([])->[];
qsort([Pivot | T])->qsort([X | | X[Pivot]
基本上是将单个元素Pivot
放入一个列表,以便与其他两个列表连接。它不考虑输入中具有相同值的其他元素。因此,您需要在实现的左侧或右侧处理它,以确保返回时不会遗漏这些值g排序后的列表
e、 g.假设您的输入列表是[5,3,6,5,2,7]。您需要处理三个子列表:
[枢轴]=[5]
[X | | X感谢您的帮助@dethron5000