为什么集合中的Python内置sorted这么快?

我的意思是,我以惊人的速度使用了一组80000个条目,并且花费的时间非常短(0.0是time.clock()差异的输出)。
那是某种优化吗?

记录是否已在集中进行排序?

而且,顺便说一下,如何对集合进行排序?你能给我密码吗?

最佳答案

没有什么特别的魔术:使用C语言高效地进行排序。 time.clock并不是基准化Python代码的理想方法,因为在某些平台上,其输出的分辨率可能会很低。为了获得最佳结果,请使用timeit模块来测量经过时间。

也没有用于排序集的特殊算法。内置的sorted在调用set(或其他任何方式)时,等效于:

def sorted(iterable):
    templist = list(iterable)
    templist.sort()
    return templist


因此,真正的魔力是in the list.sort method。 (in the adjacent file.详细解释了该实现)

10-04 21:00
查看更多