您的位置:首页 > 编程语言 > Python开发

Python sorted 方法 使用例子和稳定性分析

2014-03-14 14:02 621 查看
转自http://longriver.me/?p=325

经常使用python built-in sort 方法,使用方法例子如下:

1
2
3
4

alist=[1,2,3,4,5,6,7]
blist=sorted(alist,key=lambdaele:ele,reverse=True)
printblist
[7,6,5,4,3,2,1]

Sorted 方法用起来很方便,当alist的元素是个对象的时候可以自己定义对对象的排序,如

1

sorted(nb_stats,key=lambda stat:10*len(stat.night_day)+len(stat.day),reverse=True)

有的时候我们需要连续使用sorted对list的elements做多次排序,这样就需要考虑python 内置的sorted 的稳定性问题:


In early python-versions, the sort function implemented a modified version of quicksort. However, it was deemed unstable and as of 2.3 they switched to using an adaptive mergesort algorithm.


可见早期的sort实现的是quicksort,是不稳定,到了python2.3之后,改成了适应性的归并排序算法,是稳定算法了。

如果想看sort的源代码,可以看这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: