python排序算法详解,排序函数Python

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: