Common Lisp中使用什么算法进行“排序”功能?

时间:2013-08-13 06:32:22

标签: sorting common-lisp

我猜,它可能是依赖于实现的,所以问题并不完全正确。仍然看起来像某种比较排序与n(log n)平均复杂度。以更负责任的方式重新解释我的问题:有没有理由编写自己的快速排序或合并排序或任何其他比较排序,然后说教?

1 个答案:

答案 0 :(得分:7)

是的,算法是实现定义的(想象一下在标准中规定一个特定的算法,然后有人来了很长时间并发明了一个更好的通用目标)。您可以自己查找标准(只需谷歌“clhs sort”)。

提供的实施sortstable-sort通常应涵盖几乎所有的排序需求。我可以想象写下自己的理由:

  • 您需要挂钩进入分拣程序的特定阶段
  • 您只需要进行部分排序
  • 您的问题域需要特定的算法
  • 您想要比较不同的算法

在任何情况下,我都应该建议深入研究现有的排序实现,以免错过可能的优化(这通常与排序相关)。