陕西国际商贸学院数据结构第五章 哈希表与索引表.pdfVIP

  • 0
  • 0
  • 约1.18万字
  • 约 24页
  • 2019-05-05 发布于广东
  • 举报

陕西国际商贸学院数据结构第五章 哈希表与索引表.pdf

第五章 哈希表与索引表 • 查找的基本概念 • 哈希表 – 哈希表的基本概念 – 冲突产生 – 哈希函数的构造 – 解决冲突的方法 – 哈希表的性能分析与应用 • 索引表 – 索引表的构成 – 索引表的查找 – 分块索引 • 各种查找算法的效率分析 2.1 查找的概念(Search by KEY) • 计算机存储信息的目的是要使用这些信息,必须能对这些 信息进行查找,从中找到所需的数据。 • 如何实现对信息的有效查找?针对信息的不同特点和不同 的存储方法,有不同的查找方法。 查找表:同一类型数据组成的集合,每个数据在表中又 称为一个记录。 查找是作用在同一个类型的数据元素集合上的,将这样 的集合称为查找表。 关键字(Key) :是数据元素中某个数据项的值。 主关键字:可以唯一地标识一个记录。 例如:学生记录中的学号 学号 姓名 年龄 籍贯 查找的概念 所谓查找,就是在数据集合中按关键 字寻找满足某种条件的数据对象。 1、顺序查找 查找与值x匹配的元素 待查找数据元素存放在顺序表中,在顺序表中查找一个 元素的基本思想是逐个比较,直到找到为止,或者失败。 查找算法效率:O(n) 2 、有序表的折半查找(Binary Search也称二分法) 折半查找表的要求:各个记录按关键字大小顺序排列 (有序表) ,查找表是可以随机检索的(如数组等) 折半查找的思想: 原理:通过与中间位置上的元素进行比较,每次可 以将比较的元素范围缩小一半。 查找算法效率:O(log n) 2 2.2 哈希表查找(Hash Table) 1)哈希表的概念 • 前面的查找算法通过与查找表中的所有记录依次比较来 完成。在依次比较之前,没有办法确定查找关键字的位 置。key和存储地址之间没有关系。 (无法实现类随机查找) • 在字典中查找一个单词时,可以根据单词的首字母,直 接翻到字典的某一部分。只是因为我们事先知道,字典 里的单词时按照字母顺序排列的,所以某个字母开始的 单词的存放位置可以大致知道。 如果我们在存放记录时,按照一定的规律,将某个记 录根据它的关键字的值存放到一定的位置上,那么我 们在查找时,就可以根据给定的关键字,知道到哪里 去找。 存储地址= f(key) 哈希表查找(Hash Table) • 哈希方法是在记录的存储位置与其关键字之间建立一个确定 的对应函数关系Hash( ),使每个关键字与存储结构中一个唯 一存储位置相对应: Address =Hash ( Record.key ) • 在存放记录时, 依相同函数计算存储位置, 并按此位置存放。 • 在搜索时, 先对记录的关键字进行相同函数计算,把函数值当 做记录的存储位置, 在结构中按此位置取记录进行比较。若 关键字相等, 则搜索成功。 • 哈希表:利用哈希方法建立起来的查找表。 • 哈希函数:哈希方法中用于建立关键字和存储地址之间关系 的函数。 哈希表查找(Hash Table) T 2) 哈希冲突的产生 0 U

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档