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

timsort是通用的还是特定于Python的?

  •  31
  • Constantin  · 技术社区  · 17 年前

    Timsort是一种自适应、稳定、, 自然分类。它有超自然的力量 有序阵列(小于lg(N!) 需要进行比较,并且尽可能少 N-1),但速度与Python以前的版本一样快 高度调谐的samplesort hybrid on

    你看到了吗 timsort 在CPython之外使用?这有意义吗?

    6 回复  |  直到 17 年前
        1
  •  31
  •   plinehan    17 年前

    是的,在CPython之外使用timsort是非常有意义的,特别是在Python之外。

    目前有一个 effort underway

        2
  •  23
  •   Thomas Wouters    17 年前

    该算法非常通用,但其好处是Python特有的。与大多数排序例程不同,Python的list.sort(使用timsort)所关心的是避免不必要的比较,因为比较通常是一种比较 大量

        3
  •  6
  •   Mark Bessey    17 年前

    它看起来并不特别熟悉,但“智能”合并排序在软件界相当普遍。

    至于它是否有意义,这取决于您排序的内容,以及比较与内存分配的相对成本。在内存受限的环境中,需要2*N字节额外内存的排序不是一个好选择。

        4
  •  4
  •   Douglas Bagnall    15 年前

    现在回答 Wikipedia

        5
  •  3
  •   Constantin    15 年前
        6
  •  0
  •   dmckee --- ex-moderator kitten    17 年前

        7
  •  0
  •   Alan Evangelista    6 年前

    蒂姆索特是 物体 .

    另一方面,由于缓存一致性,quicksort的一些变体(例如introsort、dual pivot quicksort)通常会更快地对基本类型进行排序,因此通常选择它来执行此任务。