澄清递归排序算法

时间:2011-03-31 21:45:00

标签: algorithm sorting

我把这个Haskell问题作为家庭作业,细节有点复杂。我想澄清一下我在这个问题上要做的事情:

  

定义功能选择   一个整数列表并返回   头部最小的列表   列表中的元素,其尾部是   递归排序的结果   通过删除最小的获得的列表   列表中的列表元素。

这是否意味着“列表的第一个元素是最小的,列表的最后一个元素是int,只是比最小的和小于其他所有”?

例如,如果我有这个列表:

[ 2, 3, 4, 6, 8, 7]

,答案应该是

[2, 4, 6, 8, 7, 3]

[2, 4, 6, 7, 8, 3]

4 个答案:

答案 0 :(得分:2)

你想要的是:给定一个列表[5 3 9 8 1],你需要以下内容:

  • 头部最小的列表(1),尾部是对列表其余部分进行排序的结果([5 3 9 8])。
  • 原始列表的尾部有头部最小(3),尾部是排序的结果[5 9 8]
  • 等等。

答案 1 :(得分:2)

这意味着你应该得到排序列表[2,3,4,6,7,8]。预期的答案不是列表,而是实施。问题告诉你实现应该如何工作,即通过提取最小的元素,然后调用自己对剩余元素进行排序,最后将事物粘合在一起。

答案 2 :(得分:1)

  

“头部是列表中最小元素的列表”

好的,这很容易

  

并且其尾部是递归排序通过从列表中删除列表的最小元素而获得的列表的结果。

因此应对结果进行排序:[2, 3, 4, 6, 7, 8]

(您的教授希望您实施selection sort。)

答案 3 :(得分:0)

似乎问题是要求您按升序对数组进行排序(例如sort([5,4,3])==> [3,4,5])。