python排序算法详解,排序函数Python
快速排序法是最常用的排序方法之一,以下通过简单的大蟒程序实现并进行验证。
快速排序。巴拉圭
#!/usr/local/cxdmy/python3.5 -u
导入系统
导入随机
efgeneraterandomlist(n):
list=[]
forIinrange(n):
list.append(random.randint(0,n*10))
是返回(列表)
efpartition(列表) :
i=0
x=list[len(list )-1]
forjinrange(Len)列表) :
if list[j] x:
(list[i],list[j] )=) list[j],list[i])。
i=1
(list[i],list[len(list(-1)))(list[len]list)-1),list (I))))。
返回(我,列表)).
仰角指示器快速排序(列表) :
iflen(列表)1:
(q,list )=partition(list)))))))))))))))))。
list [ 0: q ]=快速排序(list[0:q]()))))。
list [ q 1: ]=快速排序(列表[q 1:])))))。
是返回(列表)
戴尔主(:
列表=generaterandomlist (30))。
打印(generateanrandomunsortedlist:)。
是打印(列表)
sortedList=quicksort(list)
打印( )。
打印(sortiwithsquick-sort:)
打印(排序列表).
# # # # # #
# #主函数# #
# # # # # #
if __name__==__main__ :
main())
程序的动作验证如下所示。
【李延青@ bogonpython】$ 1000 ./快速排序。巴拉圭
generateanrandomunsortedlist:
[287、42、13、122、211、64、191、147、262、197、191、280、198、179、55、122、63、266、101、133和196]
用.排序快速-排序:
[1、13、17、42、55、59、63、64、101、122、123、138、147、153、179、191、191、196、197、197、198和228]
【李延青@ bogonpython】$ 1000 ./快速排序。巴拉圭
generateanrandomunsortedlist:
[2、80、270、115、268、85、36、110、194、1、122、69、300、286、106、221、281、121、237、19、22、51和264
用.排序快速-排序:
[1、2、19、22、36、51、69、80、85、106、110、115、121、122、138、163、174、194、221、237、264、268、270
【李延青@ bogonpython】$ 1000 ./快速排序。巴拉圭
generateanrandomunsortedlist:
[93、239、255、79、62、145、298、65、11、79、228、253、31、248、244、256、298、193、165、284、33和33]
用.排序快速-排序:
[11、31、33、34、36、61、62、65、74、79、79、93、139、144、145、165、171、182、193、228、239、244、248
为了测试性能,我们将随机生成的无序列表的长度调整为1000000,但仍然很快。
[李延青@博根皮森] $时间。/快速排序。巴拉圭。
real0m10.939s
用户0m8.861s
sys 0m0.116s
结论:
快速排序法具有很好的性能,特别适合应用于大数据排序。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。