查找方法

1.顺序表查找
2.平均长度查找
3.折半查找
4.静态树查找
5.顺序索引查找
以上的都是静态查找
动态查找:
1.二叉排序树
2.平衡二叉树
3.B+树与B-树(多用于文件系统)
4.键树(数字查找树)

哈希表:
利用键来直接进行对值得访问
1.若关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数,按这个思想建立的表为散列表。
2.对不同的关键字可能得到同一散列地址,即k1≠k2,而f(k1)=f(k2),这种现象称为冲突。具有相同函数值的关键字对该散列函数来说称做同义词。综上所述,根据散列函数f(k)和处理冲突的方法将一组关键字映射到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“像”作为记录在表中的存储位置,这种表便称为散列表,这一映射过程称为散列造表或散列,所得的存储位置称散列地址。
3.若对于关键字集合中的任一个关键字,经散列函数映象到地址集合中任何一个地址的概率是相等的,则称此类散列函数为均匀散列函数,这就是使关键字经过散列函数得到一个“随机的地址”,从而减少冲突。
所以构建一个好的哈希函数是很重要的!
哈希函数的构建方法:
1.直接定址法
2.数字分析法
3.平方取中法
4.折叠法
5.除留余数法
6.随机数法
处理冲突的方法:
1.开放地址法
2.再哈希法
3.链地址法
4.建立一个公共溢出区

猜你喜欢

转载自blog.csdn.net/qq_34501700/article/details/84433089