《数据结构打卡》第9天
其实今天也真的没有学到什么,一个下午3点左右才开始学习,就学了一个Hash散列表的地址计算。
- 折半查找:优点:查找效率比顺序查找高,缺点:只适用于有序表,且限于顺序存储结构。(对线性链表无效),时间复杂度为:O(log2n)
- 在分块索引查找方法中,首先查找索引表,然后查找相应的块表。
- 哈希表在查找过程中,平均的查找长度与结点个数n无关。
一、二叉排序树查找
①若根节点的左子树不为空,则左子树上所有结点的值均小于根节点;
②若它的右子树不为空,则右子树上所有结点的值均大于根节点,它的左右子树都是二叉排序树。
③
二、散列查找基本概念:
使用散列表要解决的两个问题:
(1)构造一个好的散列函数
(2)确定解决冲突的方法
同义词:地址相等的元素
1、散列表的地址计算。
1.1直接定址法(不常用):
优点:以关键字值key的线性函数值为散列地址,不会有冲突。
缺点:占用大量连续的存储空间,空间效率很低。
1.2除留余数法
Hash(key) = Hash(key) mod M (M是小于等于表长的的质数或者叫素数)
2、散列表处理冲突方法1
开放地址法(线性探测法) 同义词会产生冲突。
例{47,7,29,11,16,92,22,8,3}