电子科技大学软件技术基础课件 检索与排序.pptVIP

  • 2
  • 0
  • 约9.39千字
  • 约 52页
  • 2019-05-06 发布于广东
  • 举报

电子科技大学软件技术基础课件 检索与排序.ppt

检索 5.1检索 检索是依据元素的关键字,在结构中找寻元素的方法 关键字:元素的标志,检索的依据 一般情况下,关键字是一个元素的唯一标识 检索 检索的方法与数据结构的关系 数据结构决定了检索的方法 有时为提高检索效率,需要对数据结构采用特殊的实现方式 例,按成绩检索学生,检索一个学生成绩递增的表格比杂乱的表格效率高 检索效率的一般评价依据: 比较次数 最多、最少和平均比较次数 检索 顺序检索 5.1 顺序检索 顺序查找 从头开始逐个检索直到找到需要的结点 检索 二分检索 5.2 折半(二分)检索 方法描述: 元素按关键字大小排列,每次查询查找范围内的“中间位置”结点。 若该结点不是所需,则缩小查找范围为前半部分或后半部分 检索 二分检索 算法框架 每次将检索范围缩小一半,直到范围中结点的个数为0 检索 二分检索 核心算法 确定检索范围: L:上限;h:下限 所以L ≤ h 确定“中间位置”的节点: m =(L +h)/2 若key大于m的关键字 L = m + 1;缩小查询范围为后半部分 若key小于m的关键字 h = m - 1;缩小查询范围为前半部分 若key与m的关键字相同,则找到结点 检索 二分检索 检索 二分检索 平均查找次数 检索 二分检索 无序的线性表必须 才能使用二分检索 数组实现的顺序表 用二分检索 单链表 用二分检索 排序二叉树 用二分查找 检索 顺序检索与二分检索 在检索有序线性表时,顺序检索效率较低 对于无序线性表,二分检索要求必须对无序线性表先进行排序 检索 分块检索 5.3 分块检索 将检索对象分块,块内无序,块间有序。 块内使用较低效的顺序查找 块间通过排序可使用较高效的查找方法 可做出块的索引表,进一步针对块索引表进行折半检索 检索 哈希检索 5.4 哈希(hash)检索 散列检索 根据关键字,进行运算,确定元素存储位置 平均查找次数: 检索 哈希检索 5.4.1 hash算法 截段法:从关键字中截取一段 例:关键字为学号,在管理时可从关键字中截取后三位作为元素在表格中的存放位置。 除法:将关键字除以表格长度,取其余数。 乘法: 分段迭加法: 其它算法 检索 哈希检索 5.4.2 冲突及解决 冲突 较大的关键字空间映射到较小的地址空间内,可能出现不同的关键字映射到同一个地址 即:hash(key1) = hash(key2) 解决方法 外链表法(链地址法) 开放地址法 检索 哈希检索 5.4.3 外链表法 (链地址法) 将hash值相同的表项,使用链表链在一起 检索 哈希检索 5.4.4 线性探查法 使用数组存储方式 存放时,如果hash结果冲突,将新的表项放在下一个空闲的存储单元 检索时当发现当前hash地址里存放的不是需要的元素,就从下一个存储单元开始逐个探查。——线性探查 检索 哈希检索 例 关键字模6的hash运算 以关键字分别为6,10,12,18,11,13的顺序存放元素。 查找关键字为12,18,13的元素 检索 哈希检索 5.4.5 开放地址法 Hi(k) = (H(K)+ di)mod m i:第i个冲突的元素 i = 1 to n (1)di = 1, 2, 3, … (2)di = 12, -12, 22 ,-22 (3)di = 伪随机序列 目的:使冲突分散 排序 6.1 排序 将一组元素按照它们的排序码的大小,递增或递减排列的运算 排序码:一般是元素的关键字,但也可以不是关键字,不同元素排序码可以相同 排序的方法与数据结构的关系 数据结构及其实现方式,将影响排序过程中元素比较时的方便性,和元素位置调整(搬移元素)的方便性 如:链表对元素位置调整带来很大方便 排序 排序算法一般的评价依据 平均的比较次数(完成一次排序所需的元素间排序码的比较次数) 元素搬移的次数 算法的稳定性: 对相同排序码的元素之间相对位置的维持 保持相对位置不变--稳定算法 不一定保持相对位置--不稳定算法 排序 简单插入 6.2 线性插入算法 简单插入算法 基本思想:从表取一个元素,按照排序关系插入到新的排序表中。 若直接在原表中进行: 将表分为已排序子表和未排序子表。 每次从未排序子表中取出表头元素按排序关系插入到已排序子表中,当未排序子表为空时,排序完成。 排序 简单插入 算法分析 算法框架 逐个从未排序子表中取出元素,插入排序子表的算法框架。即未排序子表不断减小,已排序子表不断增加的算法框架。 排序 简单插入 核心算法 按序插入的算法 从已排序子表的后部逐个向前比对, 如果插入元素大于表中元素,就将表中元素后移一格,否则在表中元素后放入 排序 简单插入 排序 简单选择

文档评论(0)

1亿VIP精品文档

相关文档