数据结构第22讲找哈希表和插入排序1.pptVIP

  • 4
  • 0
  • 约1.04万字
  • 约 58页
  • 2018-12-25 发布于福建
  • 举报

数据结构第22讲找哈希表和插入排序1.ppt

数据结构第22讲找哈希表和插入排序1

例:设有一组关键字{ 19, 01, 23, 14, 55, 20, 84, 27, 68, 11, 10, 77 },采用哈希函数为: H(k)=k mod 13。采用开放地址的线性探测法解决冲突,试在0~18的散列地址空间中,对该关键字序列构造哈希表。 3)折半插入排序性能分析 3. 2-路插入排序 1)基本思想 2-路插入排序是在折半插入排序的基础上改进的,目的是减少排序过程中移动记录的次数,但为此需要n个记录的辅助空间。 2)具体做法 另设一个和 L.r 同类型的数组d,首先将 L.r[1] 赋值给 d[1] ,并将 d[1] 看成是在排好序的序列中处于中间位置的记录,然后从 L.r 中第 2 个记录起依次插入到d[1] 之前或之后的有序序列中。先将待插入记录的关键字和 d[1] 的关键字进行比较。 若 L.r[i]d[1].key,则将 L.r[i] 插入到 d[1] 之前的有序表中。反之,插入到 d[1] 之后的有序表中。 【初始关键字】 49 38 65 97 76 13 27 49 排序过程中d 的状态如下: i=1: (49) i=2: (49) (38) i=3: (49 65) (38) i=4: (49 65 97) (38) i=5: (49 65 76 97) (38) i=6: (49 65 76 97) (13 38) i=7: (49 65 76 97) (13 27 38) i=8: (49 49 65 76 97) (13 27 38) 3) 2-路插入排序性能分析 二分查找的判定树(中序序列为从小到大排列的有序序列) 由图可得:二分查找的成功平均查找长度为 ASL=(1+2*2+3*4+4)/8=2.625 二叉排序树(关键字顺序已确定,该二叉排序树应唯一)如图(a)所示,平衡二叉树(关键字顺序已确定,该平衡二叉树也应该是唯一的),如图(b)所示。 由图(a)可得:二叉排序树查找的成功平均查找长度为 ASL=(1+2*2+3*2+4+5*2)/9=3.125 由图(b)可得:平衡二叉树的成功平均查找长度为 ASL=(1+2*2+3*3+4*2)/8=2.75 11 10 1 3 2 4 78 21 3 1 11 2 10 4 78 21 (a) 二叉排序树 (b) 平衡二叉树 线性探查法解决冲突的哈希表如图所示。 由图可得:线性探查法的成功平均查找长度为 ASL=(1+1+2+1+3+2+8+1)/8=2.375 链地址法解决冲突的哈希表如图所示。 由图可得:链地址法的成功平均查找长度为 ASL=(1*6+2*2)/8=1.25 小结 1. 掌握查找的基本概念; 2. 熟练掌握静态查找表的查找算法思想并灵活应用; 3. 熟练掌握动态查找表的特点以及二叉排序树、平衡二叉树的各种操作思想 4. 了解B-、B+树的概念及插入和删除操作; 5. 熟练掌握哈希表的基本概念、哈希函数的构造方法和解决冲突的方法,并能计算平均查找长度。 第10章 内部排序 10.1 排序的基本概念 10.2 插入排序 10.3 交换排序 10.4 选择排序 10.5 归并排序 10.6 基数排序 10.7 各种内部排序方法的比较 10.1 排序的基本概念 1.排序 设含有n个记录的文件{R1,R2,…Rn},相应的关键字为{K1,K2,…Kn},需确定一种排列P(1),P(2)…P(n)使其相应的关键字满足递增(或递减)关系: KP(1)≤KP(2)≤…KP(n) 或 KP(1)≥KP(2)≥…KP(n) 使上述文件成为一个按其关键字线性有序的文件{RP(1),RP(2) ,…RP(n)},这种运算就称为排序。 将数据元素的无序序列调整为有序序列的过程。 2.排序算法的稳定性 排序码(Key) 作为排序依据的记录中的一个属性。它可以是任何一种可比的有序数据类型,它可以是记录的关键字,也可以是任何非关键字。 如果待排序的序列中,存在多个具有相同排序码

文档评论(0)

1亿VIP精品文档

相关文档