网站大量收购独家精品文档,联系QQ:2885784924

快速排序算法python实现.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
快速排序算法Python 实现 i i 目 录 快速排序 算法思想 算法步骤 代码示例 PAGE PAGE 1 快速排序 算法思想 快速排序是一种非常高效的排序算法,采用 “分而治之”的思想, 把大的拆分为小的,小的拆分为更小的。其原理是,对于给定的记录,选择一个基准数, 通过一趟排序后, 将原序列分为两部分,使得前面的比后面的小,然后再依次对前后进行拆分进行快速排序, 递归该过程,直到序列中所有记录均有序。 算法步骤 1:首先取序列第一个元素为基准元素pivot=R[low。] i=low,j=hig。h 2:从后向前扫描,找小于等于pivot的数,如果找到,R[i与] R[j交] 换,i++。 3:从前往后扫描,找大于pivot的数,如果找到,R[i与] R[j交] 换,j--。 4:重复 2~3 ,直到i=j返, 回该位置mid=i,该位置正好为 pivot元素。 完成一趟排序后,以 mid 为界,将序列分为两部分,左序列都比 pivot小,有序列都比 pivot 大,然后再分别对这两个子序列进行快速排序。 代码示例 def quick_sort(lists,i,j): if i = j: return list pivot = lists[i] low = i high = j while i j: # 遍历右边,小于基准值的放到左边while i j and lists[j] = pivot: j -= 1 lists[i]=lists[j] # 遍历左边,大于基准值的放到右边while i j and lists[i] =pivot: i += 1 lists[j]=lists[i] # 基准值移动到中间lists[j] = pivot # 对左边进行排序quick_sort(lists,low,i-1) # 对右边进行排序quick_sort(lists,i+1,high) return lists if name == main : lists=[30,24,5,58,18,36,12,42,39] print(排 序前的序列为:) for i in lists: print(i,end = ) print(\排n 序后的序列为:) for i in quick_sort(lists,0,len(lists)-1): print(i,end= )

您可能关注的文档

文档评论(0)

151****4910 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档