二分及快速排序.ppt

上传人:牧羊曲112 文档编号:5684190 上传时间:2023-08-09 格式:PPT 页数:16 大小:5.42MB
返回 下载 相关 举报
二分及快速排序.ppt_第1页
第1页 / 共16页
二分及快速排序.ppt_第2页
第2页 / 共16页
二分及快速排序.ppt_第3页
第3页 / 共16页
二分及快速排序.ppt_第4页
第4页 / 共16页
二分及快速排序.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《二分及快速排序.ppt》由会员分享,可在线阅读,更多相关《二分及快速排序.ppt(16页珍藏版)》请在三一办公上搜索。

1、CopyRight by CDD2017年11月28日,二分及排序,二分查找,二分查找,二分查找,二分查找,快速排序,快速排序,快速排序,基准只是一个比较数字,可以随机使用,它在排序中也共同参与排序,没有特殊化。参考程序代码,归并排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。例如有8个数据需要排序:10 4 6 3 8 2 5 7 归并排序主要分两大步:分解、合并。合并过程为:比

2、较ai和aj的大小,若aiaj,则将第一个有序表中的元素ai复制到rk中,并令i和k分别加上1;否则将第二个有序表中的元素aj复制到rk中,并令j和k分别加上1,如此循环下去,直到其中一个有序表取完,然后再将另一个有序表中剩余的元素复制到r中从下标k到下标t的单元。归并排序的算法我们通常用递归实现,先把待排序区间s,t以中点二分,接着把左边子区间排序,再把右边子区间排序,最后把左区间和右区间用一次归并操作合并成有序的区间s,t。,归并排序动态图示,【程序实现】void msort(int s,int t)if(s=t)return;/如果只有一个数字则返回,无须排序 int mid=(s+t)/2;msort(s,mid);/分解左序列 msort(mid+1,t);/分解右序列 int i=s,j=mid+1,k=s;/接下来合并 while(i=mid 归并排序的时间复杂度是O(nlogn),速度快。同时,归并排序是稳定的排序。即相等的元素的顺序不会改变。如输入记录 1(1)3(2)2(3)2(4)5(5)(括号中是记录的关键字)时输出的 1(1)2(3)2(4)3(2)5(5)中的2 和 2 是按输入的顺序。这对要排序数据包含多个信息而要按其中的某一个信息排序,要求其它信息尽量按输入的顺序排列时很重要,这也是它比快速排序优势的地方。,排序比较,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号