数据结构之排序算法讲义ppt课件.ppt
《数据结构之排序算法讲义ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据结构之排序算法讲义ppt课件.ppt(33页珍藏版)》请在三一办公上搜索。
1、,在此幻灯片插入公司的徽标从“插入”菜单选择图片找到徽标文件单击“确定”重新设置徽标大小单击徽标内任意位置。徽标外部出现的方框是“调整控点”使用这些重新设置对象大小如果在使用尺寸调整控点前按下 shift 键,则对象改变大小但维持原比例。,DATA,10,65,865,姓名 学号 成绩 班级 李红 9761059 95 机97.6,数据结构,2022/11/12,2,注意带以下内容:图2-8-1图2-8-2图2-8-3图2-8-4图2-8-5,2022/11/12,3,第二章数据结构与算法,(续),2022/11/12,4,2.8 排 序2.8.1 概 述,1、排序的功能:将一个数据元素(或记
2、录)的任意序列,重新排成一个按关键字有序的序列。2、排序过程的组成步骤: 首先比较两个关键字的大小; 然后将记录从一个位置移动到另一个位置。,2022/11/12,5,假设待排序的记录存放在地址连续的一组存储单元中,那么这种存储方式下的数据类型可描述为:,MAX,0,1,2,3,4,key,info,#define MAX 20 typedef struct int key; float otherinfo; RedType;,2022/11/12,6,排序方法,插入排序,选择排序,交换排序,归并排序,直接插入排序,折半插入排序,简单选择排序,堆排序,起泡排序,快速排序,2022/11/12,
3、7,2.8.2 插入排序 直接插入、折半插入,1、直接插入排序:基本思想:从数组的第2号元素开始,顺序从数组中取出元素,并将该元素插入到其左端已排好序的数组的适当位置上。举例:图8-2-1,2022/11/12,8,2.8.2 插入排序 直接插入、折半插入,该算法适合于n 较小的情况,时间复杂度为O(n2).,1、直接插入排序:基本思想:从数组的第2号元素开始,顺序从数组中取出元素,并将该元素插入到其左端已排好序的数组的适当位置上,待排元素序列:53 27 36 15 69 42第一次排序: 27 53 36 15 69 42第二次排序: 27 36 53 15 69 42第三次排序: 15
4、27 36 53 69 42第四次排序: 15 27 36 53 69 42第五次排序: 15 27 36 42 53 69 直接插入排序示例,对于有n个数据元素的待排序列,插入操作要进行n-1次,2022/11/12,9,void insertSort(RedType L ,int n) int i ,j; for(i=2; i=n; i+) if(Li.keyLi-1.key) L0=Li; /* 作为监视哨*/ for( j=i-1; L0.keyLj.key; j ) Lj+1=Lj; /* 记录后移*/ Lj+1=L0; /* 插入 */ ,插入算法如下:方法:Ki与Ki-1,K i
5、-2,K1依次比较,直到找到应插入的位置。,2022/11/12,10,2、折半插入排序 折半插入排序在寻找插入位置时,不是逐个比较而是利用折半查找的原理寻找插入位置 。待排序元素越多,改进效果越明显。,折半插入排序的条件: 在有序序列中插入一个关键字。,举例,图8-2-2,2022/11/12,11,2、折半插入排序 折半插入排序在寻找插入位置时,不是逐个比较而是利用折半查找的原理寻找插入位置。待排序元素越多,改进效果越明显。,(highlow ,查找结束,插入位置为low 或high+1 ),( 4236 ),( 4253 ),2022/11/12,12,void BinsertSort(
6、RedType L ,int n) int i,low,high,mid; for(i=2; i=high+1; j ) Lj+1=Lj; /* 记录后移*/ Lhigh+1=L0; /* 插入*/ /* for*/ /*折半插入排序*/,折半插入排序减少了关键字的比较次数,但记录的移动次数不变,其时间复杂度与直接插入排序相同。,/*折半后的位置*/,2022/11/12,13,1、简单选择排序思想:首先从1n个元素中选出关键字最小的记录交换到第一个位置上。然后再从第2 个到第n个元素中选出次小的记录交换到第二个位置上,依次类推。时间复杂度为O(n2),适用于待排序元素较少的情况。,2.8.3
7、 选择排序 简单选择排序、堆排序,举例:图8-2-3,2022/11/12,14,2.8.3 选择排序 简单选择排序、堆排序。 1、简单选择排序思想:首先从1n个元素中选出关键字最小的记录交换到第一个位置上。然后再从第2 个到第n个元素中选出次小的记录交换到第二个位置上,依次类推。时间复杂度为O(n2),适用于待排序元素较少的情况。,初态,8 3 9 1 6,8 3 9 1 6,8 3 9 1 6,8 3 9 1 6,1 3 9 8 6,1 3 9 8 6,1 3 9 8 6,2022/11/12,15,简单选择排序的算法如下:void SelectSort( RedType L ,int n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 排序 算法 讲义 ppt 课件
链接地址:https://www.31ppt.com/p-1350145.html