软件工程 算法课程 第7章

软件工程 算法课程 第7章

ID:19263872

大小:35.28 KB

页数:18页

时间:2018-09-30

软件工程 算法课程 第7章_第1页
软件工程 算法课程 第7章_第2页
软件工程 算法课程 第7章_第3页
软件工程 算法课程 第7章_第4页
软件工程 算法课程 第7章_第5页
资源描述:

《软件工程 算法课程 第7章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、软件工程算法课程第7章本文由xuji1230贡献ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。第7章排序(sorting)章排序()7.1概述7.2插入排序7.3交换排序7.4选择排序7.5归并排序7.6基数排序本章小结7.1概述1.排序:n个对象的序列排序:个对象的序列个对象的序列R[0],R[1],R[2],…R[n-1]按其关键码的大小,进行由小到大(非递减)按其关键码的大小,进行由小到大(非递减)或由大到小(非递增)的次序重新排序的.由大到小(非递增)的次序重新排序的.2.关键码(key)关键码()关键码3.

2、两大类:内排序:对内存中的n个对象进行排序.两大类:内排序:对内存中的个对象进行排序个对象进行排序.两大类外排序:内存放不下,外排序:内存放不下,还要使用外存的排序.排序.4.排序算法的稳定性:排序算法的稳定性:如果待排序的对象序列中,如果待排序的对象序列中,含有多个关键码值相等的对象,用某种方法排序后,相等的对象,用某种方法排序后,这些对象的相对次序不变的,则是稳定的,相对次序不变的,则是稳定的,否则为不稳定的.8120158228例:35818215202835稳定的5.排序种类:排序种类:–内排序内排序插入排序,交换排序,选择排序,归并排序,插入排

3、序,交换排序,选择排序,归并排序,基数排序–外排序外排序6.排序的算法分析:排序的算法分析:1)时间开销比较次数,移动次数比较次数,)时间开销—比较次数2)所需的附加空间)下面是静态排序过程中所用到的数据表类定义:下面是静态排序过程中所用到的数据表类定义:vector01currentsize-1maxsize-1keyotherdata……constintDefaultSize=100;templateclassdatalisttemplateclassElement{private:Typekey;fiel

4、dotherdata;public:Typegetkey(){returnkey;}voidsetKey(constTypex){key=x;}Element&operator=(Element&x){this=x;}intoperator==(Type&x){return!(this

5、

6、xx);}intoperator>=(Type&x){return!(thisx;}}templateclassdatalist{public:d

7、atalist(intMaxSz=DefaultSize):MaxSize(MaxSz),CurrentSize(0){vector=newElement[MaxSz];}voidswap(Element&x,Element&y){Elementtemp=x;x=y;y=temp;}private:Element*vector;intMaxSize;CurrentSize;}7.2插入排序(insertSorting)插入排序(思想:V思想:V0,V1,…,Vi-1个对象已排好序,,V-个对象已

8、排好序,现要插入Vi到适当位置现要插入V例子:例子:体育课迟到的人方法:直接插入排序,折半插入排序,方法:直接插入排序,折半插入排序,链表插入排序,排序,希尔排序一,直接插入排序1.思想思想V0V1…Vi-1-Vi向后移动一个对象位置,位置,然后插入2.例子例子i=101234568325916382382358…3.主程序主程序templatevoidInsertionSort(datalist&list){for(inti=1;i子程序templatevoidInsert(datalist

9、pe>&list,inti){Elementtemp=list.vector[i];intj=i;while(j>0&&temp.getkey()javaprogrampublicstaticvoidinsertionSort(Comparable[]a){intj;for(intp=1;p0&&tmp.compareTo(a[j–1])<0;j--)a[j]=a[j–1];a[j]=tmp;}}4.算法分析算法分析1)n个对象已有序个对象已有序比较总次数

10、KCN=n-1=O(n)=-=()比较总次数移动次数RMN=2*(n-1)=O(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。