哈希函数hash.pptVIP

  • 69
  • 0
  • 约1.36万字
  • 约 71页
  • 2018-06-05 发布于天津
  • 举报
哈希函数hash

数据结构 第九章 查找 9.1 查找的基本概念 查找表(Search Table) 查找表是由同一类型的数据元素(或记录)构成的集合。对查找表的操作主要有: 查询某个“特定的”数据元素是否在查找表中; 检索某个“特定的”数据元素的各种属性; 在查找表中插入一个数据元素; 从查找表中删去某个数据元素。 查找表分类 静态查找表  仅作查询和检索操作的查找表。 动态查找表  在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已存在的某个数据元素 9.1 查找的基本概念 关键字(Key) 关键字是数据元素(或记录)中某个数据项的值,用以标识(识别)一个数据元素(或记录)。 主关键字:可以识别唯一的一个记录的关键字 次关键字:能识别若干记录的关键字 查找(Searching) 是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。 9.1 查找的基本概念 衡量查找算法的标准 时间复杂度; 空间复杂度; 平均查找长度ASL:定义为确定记录在表中的位置所进行的和关键字比较的次数的平均值 n ASL = ∑ PiCi i=1 n为查找表的长度,即表中所含元素的个数 Pi为查找第i个元素的概率(∑Pi=1) Ci是查找第i个元素时同给定值K比较的次数 9.2 静态查找表 9.2.1 顺序表的查找 顺序查找算法是顺序表(既无序表)的查找方法。在顺序查找算法中,以顺序表或线性链表表示静态查找表。 面临的问题 下标越界的检查,需要相当的时间和空间代价。解决的办法是,将ST.elem[0].key 置为key,所有元素检查完还没有找到时,在ST.elem[0]处一定找到。从而免去了检查下标越界的时间。 顺序查找算法 从表中最后一个记录开始 逐个进行记录的关键字和给定值的比较 若某个记录比较相等,则查找成功 若直到第1个记录都比较不等,则查找不成功 9.2 静态查找表 顺序查找算法描述 设置“哨兵”的目的是省略对下标越界的检查,提高算法执行速度。当然,哨兵也可以设置在高下标处。 9.2 静态查找表 顺序查找示举例 在下列顺序表中寻找62,如果找到,给出其所在位置的下标。 9.2 静态查找表 顺序查找性能分析 对顺序表而言,Ci=n-i+1 在等概率查找的情况下,Pi=1/n 平均查找长度 ASLss=n*P1 +(n-1)P2 +…+ 2Pn-1+ Pn = (n+1)/2 如果被查找的记录概率不等时, ASLss在 Pn≥Pn-1 ≥…≥P2≥P1 时取极小值 若查找概率无法事先测定,则查找过程采取的改进办法是,在每次查找之后,将刚刚查找到的记录直接移至表尾的位置上。 顺序查找特点 优点: 1.简单 2.适应面广(对表的结构无任何要求) 缺点: 1.平均查找长度较大 2.特别是当n很大时,查找效率很低 9.2 静态查找表 9.2.2 折半查找 折半查找算法是有序表的查找方法。在折半查找算法中,静态查找表按关键字大小的次序,有序地存放在顺序表中。 折半查找的原理 先确定待查记录所在的范围(前部分或后部分) 逐步缩小(一半)范围直到找(不)到该记录为止 9.2 静态查找表 折半查找算法 n个对象从小到大存放在有序顺序表ST中,k为给定值 设low、high指向待查元素所在区间的下界、上界,即low=1, high=n 设mid指向待查区间的中点,即 mid=(low+high)/2? 让k与mid指向的记录比较 若 k=ST[mid].key,查找成功 若 kST[mid].key,则high=mid-1 [上半区间] 若 kST[mid].key,则low=mid+1 [下半区间] 重复3,4操作,直至lowhigh时,查找失败。 9.2 静态查找表 折半成功查找举例:在下列有序表中用折半查找法查找62所在位置。Key = 62 9.2 静态查找表 折半查找失败举例:在上例有序表中找61。 9.2 静态查找表 折半查找的性能分析 折半查找过程可以用二叉树(也叫判定树)来描述: 判定树上每个结点需要的查找次数刚好为该结点所在的层数; 查找成功时查找次数不会超过判定树的深度 n个结点的判定树的深度为 ? log2n ? +1 比较次数最多不超过 ? log2n ? +1 折半查找的算法复杂度为 ? log2n ? +1 9.2 静态查找表 折半查找特点 折半查找的效率比顺序查找高,特别是查找表的长度很长时; 折半查找只能适用于等概率有序表,并且以顺序存储结构存储。 9.2 静态查找表 9.2.3 分块查找 分块查找是一种索引顺序表(分块有序表)查找方法,是折半查找和顺序查找的简单结合; 索引顺序表(分块有序表)将整个表

文档评论(0)

1亿VIP精品文档

相关文档