题
我正在编程一个功能 ti-nspire, ,所以我无法从函数内部使用内置。什么是在不修改列表本身的情况下对数字列表进行排序列表的最有效算法是什么? (递归和清单分割是公平的游戏,就像数学的一般使用一样。)
解决方案
Mergesort直接,简单,高效且稳定:将列表分开,递归分类并合并结果。
更具体地说,Mergesort将O(n log n)占据渐近最佳。同样,实际上(两种算法都经过修改以用特殊用途排序对简短的订阅者进行排序),Mergesort可以成为C/C ++标准库中使用的修改后的QuickSort的竞争对手。
编辑:与诸如QuickSort和Insertion排序之类的本地类别不同,Mergesort需要辅助内存,并且最容易通过复制而不是交换来实现。
不隶属于 StackOverflow