- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
归并排序和堆排序
归并排序堆排序 演讲人:胡玉洋 学号:201514675 else { for(;i=q;i++) bp[k++]=A[i++];}//A[i]-A[q]复制到缓冲区 k = 0; for (i=p; i=r; i++) A[i++] = bp[k++];//最后把数组bp的内容复制到A[p]-A[r] delete bp; } 归并算法(main()) void merge_sort(Type A[],int n) {int i, s, t = 1;//i为第一个序列的头位置,s为归并前序列长度,t为归 并后序列长度 while(tn) {s=t; t=2*s; i=0; while(i+tn) { Merge(A,i,i+s-1,i+t-1,t);//调用Merge函数 i = i+t;} if(i+sn)//对序列长度大于t但是超过s的进行处理 Merge(A,i,i+s-1,n-1,n-i);} 时间复杂度 在归并排序算法中,递归深度为O(log2n)。算法的执行时间取决于内部的while循环Merge算法的执行次数以及每次执行Merge算法时元素的比较次数,总的时间复杂度为Θ(nlogn)。 算法时间复杂度至少是?(nlogn) 算法时间复杂度至多是O(nlogn)。 空间复杂度 合并排序所使用的工作空间也取决于Merge算法,每调用一次Merge算法,便要分配一个缓冲区,在Merge算法最后一次被调用时,缓冲区最大,即序列的长度n,所以空间复杂度为Θ(n)。 堆排序 1.堆的定义 2.堆的建立 3.堆的删除 4.堆排序(堆的建立堆的删除) 5.堆排序复杂度分析(时间复杂度空间复杂度) 堆的操作 1.上移 sift_up(Type H[],int i) 2.下移 sift_down(Type H[],int n,int i) 3.删除 delete(Type H[],int n,int i) 4.建立 make_heap(Type H[],int n) 5.插入 insert(Type H[],int n,int i) 堆排序算法(小根堆为例) void heap_sort(int A[],int n)//堆排序 { int i; make_heap(A,n); //建堆 for (i=n;i1;i--) //交换堆顶元素(即最小元素)和序列最后一个元素 swap(A[1],A[i]); sift_down(A,i-1,1); //重新调整为堆 } 堆排序算法(小根堆为例) make_heap(int A[],int n) //建堆 { int i; A[n]=A[0]; for(i=n/2;i=1;i--) sift_down(A,n,i); } //把数组本身构造成一个堆,调整最后 一片树叶并找到它上面的分支节点,从这个分支节点开始做下移操作,直到根节点 堆排序算法(小根堆为例) sift_down(int H[],int n,int i) //下移,其中i为下移元素的下标 { BOOL done=FALSE; if((2*i)=n){ while(!done(i=2*i=n)){ if(i+1=nH[i+1]H[i]) //与兄弟结点比较 i=i+1; if(H[i/2]H[i]) //与父节点比较 swap(H[i/2],H[i]); else done=TRUE; } } } 复杂度分析 空间复杂度: 不需要额外的存储空间,就地排序,故
您可能关注的文档
- SolidWorks装配教程概要1.ppt
- 建筑工程测量观测水平角九源说课.ppt
- SolidWorks装配体概要1.pptx
- Some TV Program About Terracotta Army和兵马俑有关的电视剧概要1.ppt
- 建筑学二年级售楼处设计案例分析.pptx
- 建筑学常识 基础概念.pptx
- 建筑空间认识.ppt
- 建筑学 建筑保温、隔热构造.ppt
- 建筑师——王澍(PPT一页多张).ppt
- SOPC技术概要1.ppt
- 2025年山西省运城市选调生考试(公共基础知识)综合能力测试题新版.docx
- 2025年山西省运城市行政职业能力测验模拟试题完整.docx
- 2025年山西省运城市行政职业能力测验模拟试题及参考答案1套.docx
- 2025年山西省运城市行政职业能力测验模拟试题最新.docx
- 基于FPGA任意倍数分频器设计.doc
- 2025年山西省运城市事业单位招聘考试(职业能力倾向测验)题库一套.docx
- 2025年山西省运城市事业单位招聘考试(职业能力倾向测验)题库学生专用.docx
- 2025年山西省财政税务专科学校单招(语文)测试模拟题库审定版.docx
- 2025年山西省运城市事业单位招聘考试(职业能力倾向测验)题库及参考答案.docx
- 2025年山西省运城市事业单位招聘考试(职业能力倾向测验)题库完整版.docx
文档评论(0)