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

aka*_*nuk 4 sorting common-lisp

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

Sva*_*nte 7

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

实施提供sortstable-sort一般应涵盖几乎所有的排序需要你.我可以想象写下你自己的以下理由:

  • 您需要挂钩到排序过程的特定阶段
  • 您只需要部分排序
  • 您需要针对问题域的特定算法
  • 您想要比较不同的算法

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