数据结构 第八章教学课件 .ppt

上传人:春哥&#****71; 文档编号:90820228 上传时间:2023-05-18 格式:PPT 页数:34 大小:2.97MB
返回 下载 相关 举报
数据结构 第八章教学课件 .ppt_第1页
第1页 / 共34页
数据结构 第八章教学课件 .ppt_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《数据结构 第八章教学课件 .ppt》由会员分享,可在线阅读,更多相关《数据结构 第八章教学课件 .ppt(34页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、数据结构 第八章教学课件 第八章 排序数据结构目录4123 基本概念插入排序交换排序选择排序5归并排序第八章第八章排序排序总体要求了解排序的定义和基本术语;掌握各种内部排序方法的基本思想、算法特点、排序过程以及它们的时间复杂度分析;了解稳定排序方法和不稳定排序方法的定义及判断。8.1 基本概念排序就是将一组任意序列的数据元素的按一定的规律进行排列,使之成为有序序列。假设含 n 个记录的序列为 R1,R2,Rn,其相应的关键字序列为 K1,K2,Kn 这些关键字相互之间可以进行比较,即在它们之间存在着这样一个关系:Kp1Kp2Kpn 按此固有关系将上式记录序列重新排列为 Rp1,Rp2,Rpn

2、的操作称作排序排序。例:将关键字序列:52 49 80 36 14 58 61 23 调整为:14 23 36 49 52 58 61 80 设 Ki=Kj(1in,1jn,ij),且在排序前的序列中 Ri 领先于 Rj(即 i j)。若在排序后的序列中 Ri 仍领先于 Rj,则称所用的排序方法是稳定的;反之,则称所用的排序方法是不稳定的。设排序前的关键字序列为:52,49,80,36,14,58,36,23 若排序后的关键字序列为:14,23,36,36,49,52,58,80,则排序方法是稳定的。若排序后的关键字序列为:14,23,36,36,49,52,58,80,则排序方法是不稳定的。

3、内部排序和外部排序 若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序;反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的方法 逐步扩大记录的有序序列的过程 有序序列区 无 序 序 列 区有序序列区 无 序 序 列 区经过一趟排序 public class RecordTypeT extends Comparable T key;/关键字域/.其它域public RecordType()key=null;public RecordType(T data)key=data;本书把排序关键字假设为整数,并且用顺序表做存储结构。

4、其数据结构定义为:public class SortT extends Comparable protected ArrayListRecordType elem;protected int length;/表长度public Sort(T data,int n)elem=new ArrayListRecordType();RecordType e;for(int i=0;in;i+)e=new RecordType(datai);elem.add(i,e);length=n;/各种排序方法8.2 插入排序u8.2.1直接插入排序初始状态 49 38 65 97 76 13 27 49 R0

5、R1 R2 R3 R4 R5 R6 R7i=1 i=2 38 49 65 97 76 13 27 49i=3 38 49 65 97 76 13 27 49i=4 38 49 65 76 97 13 27 49i=5 38 49 65 76 97 13 27 49i=6 38 49 65 76 97 13 27 49i=7 38 49 65 76 97 13 27 4949 38 65 97 76 13 27 49 49 38 排序过程:先将序列中第 1 个记录看成是一个有序子序列,然后从第 2 个记录开始,逐个进行插入,直至整个序列有序。【算法8-1】直接插入排序算法public void

6、InsertSort(int n)int i,j;RecordType temp;for(i=1;i0&;j-)temp=elem.get(j-1);elem.set(j-1,elem.get(j);elem.set(j,temp);elem.get(j-1)pareTo(elem.get(j).key)0T(n)=O(n)算法评价 时间复杂度:比较次数:最好的情况:待排序记录按关键字从小到大排列(正序)比较次数:最坏的情况:待排序记录按关键字从大到小排列(逆序)一般情况:待排序记录是随机的,取平均值。直接插入排序是稳定排序 u8.2.2希尔排序 思路:对待排序列先“宏观”调整,再“微观”调整

7、 排序过程:先取一个正整数 d1 n,把所有相隔 d1 的记录放在一组内,组内进行直接插入排序;然后取 d2 d1,重复上述分组和排序操作;直至 di=1,即所有记录放进一个组中排序为止。其中 ddii 称为增量增量。第二趟希尔排序 第三趟分组,d3=1 第一趟希尔排序 第三趟希尔排序 第一趟分组,d1=5 第二趟分组,d2=3 R0 R1 R2 R3 R4 R5 R6 R7 R8 R949 38 65 97 76 13 27 49 55 04 49 38 65 97 76 13 27 49 55 04 13 27 49 55 04 49 38 65 97 76 13 27 49 55 04 49 38 65 97 76 13 04 49 38 27 49 55 65 97 76 04 13 27 38 49 49 55 65 76 970 1 2 3 4 5 6 7 8 9

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

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com