数据结构(第9章).ppt

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

③ 若lowhigh且r[high].key≥r[0].key //从high所指位置向前搜索,至多到low+1位置 high=high-1;转③ //寻找r[high].keyr[0].key r[low]=r[high]; //找到r[high].keyr[0].key,设置high为新支点位置,小于支点记录关键码的记录前移。 ④ 若lowhigh且r[low].keyr[0].key //从low所指位置向后搜索,至多到high-1位置 low=low+1;转④ //寻找r[low].key≥r[0].key r[high]=r[low]; //找到r[low].key≥r[0].key,设置low为新支点位置,大于等于支点记录关键码的记录后移。 转② //继续寻找支点空位 【算法10.7】 int Partition(S_TBL *tbl,int low,int high) /*一趟快排序*/ { /*交换顺序表tbl中子表tbl-[low…high]的记录,使支点记录到位,并反回其所在位置,此时,在它之前(后)的记录均不大(小)于它*/ tbl-r[0]=tbl-r[low]; /*以子表的第一个记录作为支点记录*/ pivotkey=tbl-r[low].key; /*取支点记录关键码*/ while(lowhigu) /*从表的两端交替地向中间扫描*/ { while(lowhightbl-r[high].key=pivotkey) high--; tbl-r[low]=tbl-r[high]; /*将比支点记录小的交换到低端*/ while(lowhightbl-gr[high].key=pivotkey) low++; tbl-r[low]=tbl-r[high]; /*将比支点记录大的交换到低端*/ } tbl-r[low]=tbl-r[0]; /*支点记录到位*/ return low; /*反回支点记录所在位置*/ } 【例10.5】一趟快排序过程示例 r[1] r[2] r[3] r[4] r[5] r[6] r[7] r[8] r[9] r[10] 存储单元 49 14 38 74 96 65 8 49 55 27 记录中关键码 low=1;high=10; 设置两个搜索指针, r[0]=r[low]; 支点记录送辅助单元, □ 14 38 74 96 65 8 49 55 27 ↑ ↑ low high 第一次搜索交换 从high向前搜索小于r[0].key的记录,得到结果 27 14 38 74 96 65 8 49 55 □ ↑ ↑ low high 从low向后搜索大于r[0].key的记录,得到结果 27 14 38 □ 96 65 8 49 55 74 ↑ ↑ low high 第二次搜索交换 从high向前搜索小于r[0].key的记录,得到结果 27 14 38 8 96 65 □ 49 55 74 ↑ ↑ low high 从low向后搜索大于r[0].key的记录,得到结果 27 14 38 8 □ 65 9

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档