算法设计与分析 课件 4.6-分治法 - 典型应用 - 快速排序.pptx

算法设计与分析 课件 4.6-分治法 - 典型应用 - 快速排序.pptx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

算法设计与分析

分治—快速排序;基本思想:

在数组中任选一个元素作为基准元素,用它和其他每

个元素比较,小于基准的放在它左边,大于等于基准

的放在它右边。

分别对基准的左右两个无序区进行快速排序,直到无

序区只有一个元素。;代码4-5:快速排序的一次划分过程

defPartition(a,p,r):

i=p#左端的哨兵

j=r+1#右端的哨兵

x=a[p]#选择最左端元素为基准元素

whileTrue:

i+=1

whilea[i]xandi=r:

i+=1

j-=1

whilea[j]x:

j-=1

ifi=j:

break

a[i],a[j]=a[j],a[i]

?

a[p]=a[j]

a[j]=x

returnj;代码4-5:快速排序的一次划分过程

defPartition(a,p,r):

i=p#左端的哨兵

j=r+1#右端的哨兵

x=a[p]#选择最左端元素为基准元素

whileTrue:

i+=1

whilea[i]xandi=r:

i+=1

j-=1

whilea[j]x:

j-=1

ifi=j:

break

a[i],a[j]=a[j],a[i]

?

a[p]=a[j]

a[j]=x

returnj;时间复杂度分析;时间复杂度分析;时间复杂度分析;以比较操作为基本操作的算法类中,求解排序问题。

快速排序算法在平均情况下是最优算法。;测试

您可能关注的文档

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档