- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CH13-排序讲义
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, ? 2005 Pearson Education, Inc. All rights reserved. 0-13-140909-3 Chapter 13排序 主要内容 13.1 计算时间为o(n2)的排序方法 13.2 堆、堆排序和优先队列 13.3 快速排序 13.4 归并排序 13.5 基数排序 Consider list x1, x2, x3, … xn We seek to arrange the elements of the list in order Ascending or descending Some O(n2) schemes easy to understand and implement inefficient for large data sets 选择排序 多次扫描列表; 每次选出一个元素将被放到正确位置。 简单选择法排序算法-基于数组和链表 for(i=0;in-1;i++) { 找出列表x[i]中最小元素的下标。 交换最小元素和子列表中的第一个元素。 } 简单选择法排序算法最坏计算时间:o(n2) (n-1)+(n-2)+…+2+1=(n*(n-1))/2 交换排序-冒泡排序 系统化地交换那些不符合次序的元素对,直至列表中不存在这种元素对为止。 冒泡排序算法 for ( int top =data.length() -1;top0; top-- ) { for (i= 0 ; itop;i++ ) if (data[i+1] data[i]) swap (i+1, i); } ///////////////////////////改进//////////////////////////////////////////////////////////// exchange = 1; for ( int top =data.length() -1;top0exchang; top-- ) { exchange = 0; for (i= 0 ; itop;i++ ) if (data[i+1] data[i]) { swap (i+1, i); exchange = 1;} } 冒泡排序算法最坏计算时间:o(n2) 插入排序 反复插入新元素到已经排好序的列表中,且保证插入后列表也有序。 插入排序算法最坏计算时间:o(n2) Given list to be sorted 67, 33, 21, 84, 49, 50, 75 for ( next = 1; next n; next++ ) { // data[0..next-1]是已经排序好的 temp = data[next]; for (j = next - 1 ; j=0tempdata[j];j-- ) data[j+1] = data[j]; data[j+1] = temp; // data[next] 放在正确的位置上 //data[0..next] 一段已经排序好了. } 排序算法性能比较 排序算法性能比较 堆是一棵符合以下性质的二叉树: 1、是一棵完全二叉树,也就是除了最低层之外,树的每层都是满的,且最低层中的节点处于左边。 2、它满足堆次序属性:每个节点中的数据项都大于或者等于其子女的数据项。(也可以小于等于) 基本操作: 1、建堆(空) 2、判空 3、插入一项 4、提取一个最大(小)元素 5、删除一个最大(小)元素 判断以下二叉树中那棵是堆? 堆的基本操作 堆的基本操作 演示删除操作过程 4、插入操作 堆排序 (Heap Sort) STL中的堆算法 C++库algorithm 中有以下算法: make_heap() heapify push_heap() insert pop_heap() delete sort_heap() heapsort 优先队列 优先队列:每次从队列中取出的是具有最高优先权的元素 如下表: 优先队列ADT 三种实现优先队列的方式比较 1、使用列表(存放在数组、向量或链表中) 插入:把项插入队尾
您可能关注的文档
- CEAC考试平面设计题目讲义.doc
- CE-SDS与SEC-HPLC比较ppt讲义.ppt
- Cell-Desig单元生产线设计讲义.ppt
- CELL生产模.ppt式讲义.ppt
- CCNA学习笔记讲义.docx
- CATIAGSD_曲面设计讲义.ppt
- CFAandEFA结构方程模型:探索性因子与验证性因子讲义.ppt
- CFDA生产工艺一致性评价20160809讲义.doc
- Cell改善事例讲义.ppt
- cell-6讲义.ppt
- 2024年安全监察人员题库试题【考点精练】附答案详解.docx
- 2024年安全监察人员模考模拟试题【历年真题】附答案详解.docx
- 2024年河南省焦作市济源市亚桥乡招聘社区工作者真题及完整答案详解1套.docx
- 2024年河南省漯河市郾城区城关镇招聘社区工作者真题附答案详解.docx
- 2024年浙江省台州市黄岩区江口街道招聘社区工作者真题及完整答案详解1套.docx
- 2024年河南省濮阳市范县颜村铺乡招聘社区工作者真题及参考答案详解1套.docx
- 2024年河南省濮阳市范县陆集乡招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省濮阳市台前县城关镇招聘社区工作者真题及答案详解1套.docx
- 2024年河南省鹤壁市浚县王庄乡招聘社区工作者真题及答案详解1套.docx
- 2024年河南省焦作市中站区王封街道招聘社区工作者真题及答案详解一套.docx
最近下载
- 历史史料在高中历史教学中的跨学科融合研究教学研究课题报告.docx
- 聚氨酯合成革工艺及原理简介.pdf VIP
- 新版gmp文件-生产用模具管理规程.pdf VIP
- 2010年国家公务员考试申论真题.doc VIP
- 储罐充水试验方案.doc VIP
- 深圳市公务员考试申论真题参考答案及解析.doc VIP
- 上海浦东国际机场新T2航站楼 Terminal 2,Shanghai Pudong International Airport.pdf VIP
- 生产车间水池施工方案生产间水池施工方案.doc VIP
- 袋鼠数学竞赛Level D【7-8年级】2021年真题中英文版含答案.pdf VIP
- 水利水电工程造价管理系统_操作手册(K3).pdf VIP
文档评论(0)