代码之家  ›  专栏  ›  技术社区  ›  muhmuhten

有效功能排序

  •  3
  • muhmuhten  · 技术社区  · 15 年前

    我正在为一个 TI-Nspire ,所以我不能从函数内部使用内置函数。在不修改列表本身的情况下,对数字列表排序最有效的算法是什么?(递归和列表拆分是公平的游戏,数学的一般用法也是如此。)

    2 回复  |  直到 10 年前
        1
  •  3
  •   comingstorm    15 年前

    merge sort简单、高效、稳定:拆分列表、递归排序和合并结果。

    更具体地说,mergesort采用o(n log n),这是渐进最优的。此外,在实践中(使用两种算法来修改带有特殊目的排序的短子列表),MyExeSoRT可以是C/C++标准库中使用的修改后的Quask排序的密切竞争者。

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

        2
  •  0
  •   Community CDub    8 年前

    Timsort 在Python和JavaSE 7中使用。它采用合并排序和插入排序的最佳方式。插入排序是O(n^2),但对于较小的数字列表,插入排序比合并排序快!

    因此,您可以使用它作为一个通用排序算法,如前所述 here