查找表
查找表(Search Table)是一种在实际应用中大量使用的数据结构。查找表分为静态查找表和动态查找表,静态查找表只进行查找操作,动态查找表则在查找的同时还进行插入或删除操作。
静态查找表主要是:顺序表、线性链表、索引顺序表等。
动态查找表主要是:二叉排序树、平衡二叉树、B-树、B+树等。
根据设定的哈希函数H(key)和处理冲突的方法将一组关键字映像到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“像”作为记录在表中的存储位置,这种表就叫哈希表。
哈希函数的构造方法:
1. 直接定址法 H(key) = key 或 H(key) = a * key + b
2. 除留余数法 H(key) = key % p, p ≤ length (一般情况下,p为质数或不包含<20的质因数的合数。)
3. 等等…
处理冲突的方法:
1. 开放定址法 (1). 线性探测再散列 (2). 二次探测再散列 (3). 伪随机数探测再散列
2. 链地址法
3. 等等…
哈希表的查找长度:依赖于3个因素,哈希函数、处理冲突的方法和哈希表装填因子。
文章若无注明则属原创,转载请以链接形式注明出处。
本文地址:http://www.juliuschen.com/archives/5.html