我正在编程一个功能 ti-nspire, ,所以我无法从函数内部使用内置。什么是在不修改列表本身的情况下对数字列表进行排序列表的最有效算法是什么? (递归和清单分割是公平的游戏,就像数学的一般使用一样。)

有帮助吗?

解决方案

Mergesort直接,简单,高效且稳定:将列表分开,递归分类并合并结果。

更具体地说,Mergesort将O(n log n)占据渐近最佳。同样,实际上(两种算法都经过修改以用特殊用途排序对简短的订阅者进行排序),Mergesort可以成为C/C ++标准库中使用的修改后的QuickSort的竞争对手。

编辑:与诸如QuickSort和Insertion排序之类的本地类别不同,Mergesort需要辅助内存,并且最容易通过复制而不是交换来实现。

其他提示

蒂姆索尔 用于Python和Java SE7。它采用了最好的合并排序和插入排序。插入排序是O(n^2),但是数字列表较小,它比合并排序快!

因此,您可以将其用作普通排序算法如前所述 这里

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top