- 1、本文档共83页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.3.2 快速排序 快速排序是通过比较关键码、交换记录,以某个记录为界(该记录称为支点),将待排序列分成两部分。其中,一部分所有记录的关键码大于等于支点记录的关键码,另一部分所有记录的关键码小于支点记录的关键码。我们将待排序列按关键码以支点记录分成两部分的过程,称为一次划分。对各部分不断划分,直到整个序列按关键码有序。 一次划分方法: 设1≤pq≤n,r[p],r[p+1],...,r[q]为待排序列 ① low=p;high=q; //设置两个搜索指针,low是向后搜索指针,high是向前搜索指针 r[0]=r[low]; //取第一个记录为支点记录,low位置暂设为支点空位 ② 若low=high,支点空位确定,即为low。 r[low]=r[0]; //填入支点记录,一次划分结束 否则,lowhigh,搜索需要交换的记录,并交换之 ③ 若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
您可能关注的文档
- 安徽财经大学财务管理学课件第三章 基本财务估值模型.ppt
- 安徽财经大学财务管理学课件第十五章 财务分析.ppt
- 安徽财经大学法学院宪法学课件第二章 宪法的历史发展.ppt
- 安徽财经大学法学院宪法学课件第十六章 选举制度.ppt
- 安徽财经大学法学院宪法学课件第十七章 国家机构.ppt
- 安徽财经大学法学院宪法学课件第十三章 国家形式-下.ppt
- 安徽财经大学法学院宪法学课件第十四-十五章 公民的基本权利和义务.ppt
- 安徽财经大学法学院宪法学课件第一章 宪法的概念.ppt
- 安徽财经大学管理信息系统课件第三章 管理信息系统的技术基础.ppt
- 安徽财经大学管理学院企业战略管理课件:第六章 企业总体战略.ppt
文档评论(0)