数据结构课件.优秀PPT.ppt

上传人:1398****507 文档编号:56532928 上传时间:2022-11-02 格式:PPT 页数:21 大小:67KB
返回 下载 相关 举报
数据结构课件.优秀PPT.ppt_第1页
第1页 / 共21页
数据结构课件.优秀PPT.ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《数据结构课件.优秀PPT.ppt》由会员分享,可在线阅读,更多相关《数据结构课件.优秀PPT.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据结构课件内部排序内部排序第一讲2004年12月第十章第十章 内部排序内部排序插入排序:直插入排序,希尔排序交换排序:冒泡排序,霍尔快速排序选择排序:简洁选择排序,堆排序 归并排序 基数排序10-110-1排序的基本概念排序的基本概念一、排序:将若干数据元素构成的一个随意序列,重新排成按关键字有序序列的过程。二、关于排序的稳定性:若排序之前Ki=Kj,并且Ri领先Rj(ij),排序后仍Ri领先于Rj,则排序是稳定的,否则排序是不稳定的。三、排序方法分类:1 内排序:在内存进行;2 外排序:在内存进行,同时访问外存;10-110-1排序的基本概念排序的基本概念四、存储结构:依次存储结构,常称为

2、表。#define MAXSIZE 30;/*表中记录的个数*/Typedef struct int key;/*或其他类型*/./*其他次关键字域*/ElemType;typedef ElemType listtpMAXSIZE;10-2 10-2 插入排序插入排序 一、干脆插入排序:思路:通过不断的将某记录插入到 一个已经有序的表中来实现。有一组关键字49,38,76,27,49;i=2 (49)3838,76,27,49 i=3 (38,49),7676,27,49 i=4 (38,49,76),2727,49 i=5 (27,38,49,76),4949 end.(27,38,49,4

3、9,76)-干脆插入排序算法 nvoid straisort(listtp r);n for(i=2;ik)/*大值的记录后移*/n rj+1=rj;j-;n rj+1=r0;/*插入位置*/n n /*straisort*/-干脆插入排序算法 算法分析:算法分析:排序是稳定的排序是稳定的;原来:原来:(4949,3838,7676,2727,4949)排序后:排序后:(27,38,49,49,76)(27,38,49,49,76)排时间困难度为:排时间困难度为:T(n)=O(n2)T(n)=O(n2)10-3 交换排序一、起泡排序(由小到大)思路:第1趟aj与aj+1比,较大数=aj+1(j

4、=1,.n-1)第2趟aj与aj+1比,较大数=aj+1(j=1,.n-2)第n-1趟a1与a2比,较大数=a2(j=1,n-(n-1)一、起泡排序(由小到大)算法描述:(1)void buble_sort(listtp r)for(i=1;i=n-1;i+)/*共计n-1趟*/for(j=1;jrj+1.key)x=rj;rj=rj+1 rj+1=x;/*bubble_sort*/起泡排序实例图示:排序表长度 n=8初始状态初始状态 第第1 1趟后趟后 第第2 2趟后趟后 第第3 3趟后趟后 第第4 4趟后趟后 第第5 5趟后趟后 第第6 6趟后趟后 49 38 38 38 38 13 49

5、 38 38 38 38 13 1313 38 49 49 49 13 27 38 49 49 49 13 27 2727 65 65 65 13 27 38 65 65 65 13 27 38 3838 97 76 13 27 49 97 76 13 27 49 49 4949 49 76 13 27 76 13 27 4949 4949 4949 4949 13 27 13 27 4949 65 65 65 6565 65 65 65 27 27 4949 76 76 76 76 7676 76 76 76 76 4949 9797 97 97 97 97 9797 97 97 97 97

6、起泡排序改进方法(2)Void bubble_sort2(listtp r)i=1;do bool=1;for(j=1;jrj+1.key)x=rj;rj=rj+1;rj+1=x;bool=0;i+;while(bool=0&i=n-1);/*bubble_sort2*/当某一趟仅有比较而多数据交换,表明序列已经有序。可以结束排序过程。起泡排序算法分析 时间困难度:一般状况下:T(n)=0(n2)当原始序列有序是:T(n)=0(n)起泡排序算法是稳定的。排序算法小结:干脆插入排序稳定,时间困难度为:0(n2)交换排序的起泡排序是稳定,一般,时间困难度为:0(n2)当原始序列有序,时间困难度为:

7、0(n)上一讲内容回顾上一讲内容回顾 排序基本概念排序基本概念插入排序插入排序 干脆插入排序干脆插入排序 稳定稳定 T(n)=O(n2)希尔排序希尔排序 不稳定不稳定 T(n)=n 1.3交换排序交换排序起泡排序起泡排序 稳定稳定 T(n)=O(n2)原表有序时原表有序时 T(n)=O(n)本讲内容本讲内容交换排序交换排序起泡排序起泡排序 稳定稳定 T(n)=O(n2)快速排序快速排序 不稳定不稳定 T(n)=O(n.log2n)选择排序选择排序 简洁选择排序简洁选择排序 稳定稳定 T(n)=O(n2)堆排序堆排序 不稳定不稳定 T(n)=O(n.log2n)10.3 10.3 交换排序交换排

8、序 二、霍尔快速排序霍尔快速排序 n存储结构:依次存储结构,常称为表。n#define MAXSIZE 30;/*表中记录的个数*/nTypedef struct n int key;/*或其他类型*/n ./*其他次关键字域*/n ElemType;ntypedef ElemType listtpMAXSIZE;1.霍尔快速排序思路霍尔快速排序思路(1)以以r1.keyr1.key为枢轴,经过比较将:r1r1,r2,rnr2,rn 分成两个子表:.k.ki i.k k1 1.k.kj j.,左子表关键字=k11.霍尔快速排序思路思路每一趟具体做法:先以第一个关键字为枢轴。设置左右两个 指针分别指向表的两端,i=1 ,j=n。从表的右端起先比较(j=n),发生元素移动后,再换到左端比较(i),直到 i=j 为止。这就是枢轴元素的最终位置。(2)对各个子表重复第(1)步,直到各子表长度为1为止。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 商业计划书

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁