数据结构课件.资料讲解.ppt

数据结构课件.资料讲解.ppt

ID:61278483

大小:84.00 KB

页数:21页

时间:2021-01-23

数据结构课件.资料讲解.ppt_第1页
数据结构课件.资料讲解.ppt_第2页
数据结构课件.资料讲解.ppt_第3页
数据结构课件.资料讲解.ppt_第4页
数据结构课件.资料讲解.ppt_第5页
资源描述:

《数据结构课件.资料讲解.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构课件.§10-1排序的基本概念一、排序:将若干数据元素构成的一个任意序列,重新排成按关键字有序序列的过程。二、关于排序的稳定性:若排序之前Ki=Kj,并且Ri领先Rj(i

2、pe;typedefElemTypelisttp[MAXSIZE];§10-2插入排序一、直接插入排序:思路:通过不断的将某记录插入到一个已经有序的表中来实现。有一组关键字{49,38,76,27,49};i=2(49)38,76,27,49┏━┛i=3(38,49),76,27,49i=4(38,49,76),27,49┏━━━━━┛i=5(27,38,49,76),49┏━┛end.(27,38,49,49,76)-直接插入排序算法voidstraisort(listtpr);{for(i=2;i<=n;i++){r[0]=r[i]

3、;/*设置监视哨*/j=i-1;k=r[i].key;while(r[j].key>k)/*大值的记录后移*/{r[j+1]=r[j];j--;}r[j+1]=r[0];/*插入位置*/}}/*straisort*/-直接插入排序算法算法分析:排序是稳定的;原来:(49,38,76,27,49)排序后:(27,38,49,49,76)排时间复杂度为:T(n)=O(n2)§10-3交换排序一、起泡排序(由小到大)思路:第1趟aj与aj+1比,较大数=>aj+1(j=1,...n-1)第2趟aj与aj+1比,较大数=>aj+1(j=1,..

4、.n-2)第n-1趟a1与a2比,较大数=>a2(j=1,n-(n-1))一、起泡排序(由小到大)算法描述:(1)voidbuble_sort(listtpr){for(i=1;i<=n-1;i++)/*共计n-1趟*/for(j=1;j<=n-i;j++)if(r[j].key>r[j+1].key){x=r[j];r[j]=r[j+1]r[j+1]=x;}}/*bubble_sort*/起泡排序实例图示:排序表长度n=8初始状态第1趟后第2趟后第3趟后第4趟后第5趟后第6趟后49383838381313384949491327276

5、56565132738389776132749494976132749494949132749656565652749767676767649979797979797起泡排序改进方法(2)Voidbubble_sort2(listtpr){i=1;do{bool=1;for(j=1;j<=n-i;j++)if(r[j].key>r[j+1].key){x=r[j];r[j]=r[j+1];r[j+1]=x;bool=0;}i++;}while(bool==0&&i<=n-1);}/*bubble_sort2*/当某一趟仅有比较而无数据交

6、换,表明序列已经有序。可以结束排序过程。起泡排序算法分析时间复杂度:一般情况下:T(n)=0(n2)当原始序列有序是:T(n)=0(n)起泡排序算法是稳定的。排序算法小结:直接插入排序稳定,时间复杂度为:0(n2)交换排序的起泡排序是稳定,一般,时间复杂度为:0(n2)当原始序列有序,时间复杂度为:0(n)上一讲内容回顾排序基本概念插入排序直接插入排序稳定T(n)=O(n2)希尔排序不稳定T(n)=n1.3交换排序起泡排序稳定T(n)=O(n2)原表有序时T(n)=O(n)本讲内容交换排序起泡排序稳定T(n)=O(n2)快速排序不稳定T

7、(n)=O(n.log2n)选择排序简单选择排序稳定T(n)=O(n2)堆排序不稳定T(n)=O(n.log2n)§10.3交换排序二、霍尔快速排序存储结构:顺序存储结构,常称为表。#defineMAXSIZE30;/*表中记录的个数*/Typedefstruct{intkey;/*或其他类型*/.../*其他次关键字域*/}ElemType;typedefElemTypelisttp[MAXSIZE];1.霍尔快速排序思路(1)以r[1].key为枢轴,经过比较将:r[1],r[2],………,r[n]分成两个子表:[.....ki..

8、...]k1[.....kj.....],左子表关键字=k11.霍尔快速排序思路每一趟具体做法:先以第一个关键字为枢轴。设置左右两个指针分别指向表的两端,i=1,j=n。从表的右端开始比

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

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

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