数据结构:散列
2015-08-03 21:29
441 查看
散列基本思想:
构造散列函数--->以key为关键字,通过函数h,计算出函数值h(key),作为数据对象的存储地址
处理冲突 --->不同关键字映射到同一个散列地址,即h(key1)=h(key2),需某种冲突解决策略
1.构造散列函数:
设计原则--->计算简单,地址分布均匀
1).直接定址法:
h(key)=a*key+b
2).数字分析法:
分析各位变化,取比较随机位
3).平方取中法:
把key平方后取中间几位
4).折叠法:
把key分割成位数相等的几部份,之后叠加,按情况取后几位
5).除留余数法:
h(key)=key mod p
6).随机数法 :
h(key)=random(key)
字符关键字:
1).ASCLL码加和法
2).前3个字符移位法
3).移位法
2.处理冲突:
设计原则--->开放地址法,链地址法
1).开放定址发
2).再散列法
3).链地址法
4).建立公共溢出区
构造散列函数--->以key为关键字,通过函数h,计算出函数值h(key),作为数据对象的存储地址
处理冲突 --->不同关键字映射到同一个散列地址,即h(key1)=h(key2),需某种冲突解决策略
1.构造散列函数:
设计原则--->计算简单,地址分布均匀
1).直接定址法:
h(key)=a*key+b
2).数字分析法:
分析各位变化,取比较随机位
3).平方取中法:
把key平方后取中间几位
4).折叠法:
把key分割成位数相等的几部份,之后叠加,按情况取后几位
5).除留余数法:
h(key)=key mod p
6).随机数法 :
h(key)=random(key)
字符关键字:
1).ASCLL码加和法
2).前3个字符移位法
3).移位法
2.处理冲突:
设计原则--->开放地址法,链地址法
1).开放定址发
2).再散列法
3).链地址法
4).建立公共溢出区
相关文章推荐
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 数据结构——二叉树的遍历
- 树-堆结构练习——合并果子之哈夫曼树
- 数据结构与算法分析 java语言描述 课后题1.6
- 数据结构与算法分析 java语言描述
- .frm文件恢复mysql的数据结构
- 数据结构之栈和队列---Ackerman函数
- 数据结构之栈和队列---队列的基本操作
- 数据结构之栈和队列---栈的基本操作
- COJ970 WZJ的数据结构(负三十)
- COJ968 WZJ的数据结构(负三十二)
- 查找算法 数据结构
- 动态规划原理 数据结构
- 数据结构02_线性表
- COJ969 WZJ的数据结构(负三十一)
- Morris Traversal方法遍历二叉树
- LeetCode OJ 之 Add and Search Word - Data structure design (Trie数据结构设计)
- 【黑马程序员-学习笔记】数据结构-概念
- poj2246--数据结构栈
- 数据结构和算法目录表