软件技术基础第三章ppt课件.ppt

软件技术基础第三章ppt课件.ppt

ID:58999078

大小:713.50 KB

页数:71页

时间:2020-09-27

软件技术基础第三章ppt课件.ppt_第1页
软件技术基础第三章ppt课件.ppt_第2页
软件技术基础第三章ppt课件.ppt_第3页
软件技术基础第三章ppt课件.ppt_第4页
软件技术基础第三章ppt课件.ppt_第5页
资源描述:

《软件技术基础第三章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、冒泡排序与快速排序(交换排序法)简单插入排序与希尔排序(插入排序法)简单选择排序与堆排序(选择排序法)其他排序方法简介排序是数据处理的重要内容,是指将一个无序序列整理成按值非递减顺序排列的有序序列(本章仅介绍内部排序:即能够在内存中完成的排序)基本排序实质上,我们可以对排序定义再抽象即将无序序列整理成具有逻辑大小前驱后继排列的序列交换排序交换排序的思想是通过交换元素以达到消除逆序的目的冒泡排序(1)从表头开始往后扫描线性表,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,前面的元素大于后面的元素,则将它们互换,称之为消去了一个逆序。显然,在扫描过程中,不断地将两相邻元素中的大者

2、往后移动,最后就将线性表中的最大者换到了表的最后。 (2)除去最后已经冒出的元素,对剩下的线性表重复上述过程,直到剩下的线性表变空为止,此时冒出的元素构成的线性表已经变为有序。逆序:在数组A[n]中,存在iA[j]则称A[i]和A[j]构成一个逆序5173169428615316742869第一遍13156427689第二遍11354266789第三遍11342566789第四.五.六遍11324566789第七遍11234566789第八遍11234566789第九.十.十一遍冒泡排序需要经过(n-1)+(n-2)+(n-3)+…+1=n(n-1)/2次比较算法复杂度

3、量级为O(n2)双向冒泡排序(1)从表头开始往后扫描线性表,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,前面的元素大于后面的元素,则将它们互换,称之为消去了一个逆序。显然,在扫描过程中,不断地将两相邻元素中的大者往后移动,最后就将线性表中的最大者换到了表的最后。 (2)从后到前扫描剩下的线性表,同样,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,后面的元素小于前面的元素,则将它们互换,这样就又消去了一个逆序。显然,在扫描过程中,不断地将两相邻元素中的小者往前移动,最后就将剩下线性表中的最小者换到了表的最前面 (3)对剩下的线性表重复上述过程,直到剩下的线性表变空

4、为止,此时的线性表已经变为有序。bubsort(p,n) intn;ETp[]; {intm,k,j,i; ETd; k=0;m=n-1; while(k<m)/*子表未空*/ {j=m-1;m=0; for(i=k;i<=j;i++)/*从前往后扫描*/ if(p[i]>p[i+1])/*发现逆序进行交换*/ {d=p[i];p[i]=p[i+1];p[i+1]=d;m=i;}j=k+1;k=0; for(i=m;i>=j;i--)/*从后往前扫描*/ if(p[i-1]>p[i])/*发现逆序进行交换*/ {d=p[i];p[i]=p[i-1];p[i-1]=d;k=i;} } re

5、turn; }输入:无序序列P(1:n)。输出:有序序列P(1:n)。虽然从算法上优化了冒泡法排序,但是其最坏算法复杂度量级依然是O(n2)快速排序:解决冒泡排序中一次仅通过交换两个相邻元素完成一个逆序的消除的效率不高的问题快速排序的思想为:从线性表中取一个元素,设为T,小于T的元素移到T前,大于T的元素移到T后从而将线性表以T为分界分成两个子表.关键是对线性表的分割.首先,在表的第一个、中间一个与最后一个元素中选取其中一项作为枢纽,设为P(k),并将P(k)赋给T,再将表中的第一个元素移到P(k)的位置上。然后设置两个指针i和j分别指向表的起始与最后的位置。反复作以下两步:(1)将j逐

6、渐减小,并逐次比较P(j)与T,直到发现一个P(j)<T为止,将P(j)移到P(i)的位置上。(2)将i逐渐增大,并逐次比较P(i)与T,直到发现一个P(i)>T为止,将P(i)移到P(j)的位置上。上述两个操作交替进行,直到指针i与j指向同一个位置(即i=j)为止,此时将T移到P(i)的位置上。算法描述算法核心:将枢纽Ki放在序列中的合适位置.R0R1R2RiRjRn2Rn1pivotK0K0……K0K0……i

7、ightpositionforR0[RjR1R2Rj1]R0[RiRn2Rn1]SmallerUniverses例:将序列49、38、65、97、76、13、27、49用快速排序的方法进行排序。012345678493838656597977676131327274949ji49界点10e.g:将序列49、38、65、97、76、13、27、49用快速排序的方法进行排序。0123456784938386

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

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

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