按增加的顺序对元素进行排序

时间:2011-06-04 02:50:32

标签: sorting merge scheme

这个问题要求我完成Scheme函数merge,它会消耗两个已排序数字列表(按升序排列),并生成一个数字列表,其中包含按排序顺序排列的所有两个消耗列表。

例如,

(merge (list 1 4 5 9) (list -1 2 4)) => (list -1 1 2 4 4 5 9)
(merge (list 1 4 5 9) empty) => (list 1 4 5 9)
(merge empty (list 1 4 5 9)) => (list 1 4 5 9)
(merge empty empty) => empty

感谢您的帮助!!

1 个答案:

答案 0 :(得分:3)

由于这有点像家庭作业,我不会写任何代码,但我会告诉你,正在做的是merge sort algorithm的一部分。记住这两件事:

  • 在像Scheme这样的函数式语言中,您提出的问题我需要生成什么值而不是我需要做什么
  • 在Scheme中,您经常编写多个程序来完成单个任务

如果你还记得这两件事,并弄清楚你需要实现合并排序的哪一部分,那么应该很容易理解。