繁体   English   中英

有效的功能排序

[英]Effective functional sort

我正在为TI-Nspire编写函数,所以我不能在函数内部使用内置函数。 在不修改列表本身的情况下,对数字列表进行排序的最常用效率算法是什么? (递归和列表拆分是公平的游戏,因为通常使用数学。)

Mergesort简单,简单,高效且稳定:拆分列表,递归排序,并合并结果。

更具体地说,mergesort采用渐近最优的O(N log N)。 此外,在实践中(两种算法都经过修改以对具有特殊用途排序的短子列表进行排序),mergesort可以成为C / C ++标准库中使用的修改后的快速排序的紧密竞争者。

编辑:与快速排序和插入排序等就地排序不同,mergesort需要辅助内存,并且最简单的方法是通过复制而不是交换来实现。

Timsort用于python和java SE 7.它采用了最好的合并排序和插入排序。 插入排序是O(n ^ 2)但是使用小数字列表它比合并排序更快!

因此,您可以将其用作此处所述的通用排序算法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM