当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《timsort是通用的还是特定于Python的?》经验,为你挑选了3个好方法。

是的,在CPython之外,特定的或者Python中使用timsort是非常有意义的.

目前正在努力用timsort取代Java的"修改合并排序",初步结果非常积极.



1> plinehan..:

是的,在CPython之外,特定的或者Python中使用timsort是非常有意义的.

目前正在努力用timsort取代Java的"修改合并排序",初步结果非常积极.


Java SE 7现在使用Timsort作为排序算法.见http://www.docjar.com/docs/api/java/util/Collections.html#sort(List)

2> Thomas Woute..:

该算法非常通用,但其优点是特定于Python.与大多数排序例程,什么Python的list.sort(这是使用timsort)关心的是避免不必要的比较,因为通常比较是一个很多比交换项目(这是永远只是一组指针副本),甚至分配一些更贵额外的内存(因为它总是只是一个指针数组,与任何Python操作中的平均开销相比,开销很小.)

如果你受到类似的限制,那么它可能是合适的.我还没有看到任何其他情况下比较真的那么贵,但是:-)



3> Mark Bessey..:

它看起来并不特别熟悉,但"智能"合并在广泛的软件世界中非常普遍.

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

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有