为什么集合中的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.详细解释了该实现)