Hash算法系列-简介
来源:互联网 发布:linux创建用户指定id 编辑:程序博客网 时间:2024/05/22 13:17
Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,可以快速查找诸如链表中的元素。
数学表述为:h = H(M) ,其中H( )--单向散列函数,M--任意长度明文,h--固定长度散列值。
链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash链表查找的时间效率为O(1)。
Hash算法现在应用比较广泛,除了快速查找,负载均衡、安全领域都有使用。
Hash算法的衡量标准在不同的应用场景中有不同的衡量标准。大概有以下几种,但不仅限于此。
1. 抗冲突性(collision-resistant)
即在hash后无法产生2个散列值相同的预映射。通俗点讲不同的输入不能出现相同的输出。但绝对无冲突的hash算法很难做到。有些情形下为了防止hash冲突会进行二次hash或更多次的hash叠加。
2.单调性(Monotonicity)
hash表扩容或减少时,之前的结果不能发生太大的改变。
3.平衡性(Balance)
散列在不同区间上的预映射总数大致相当。
4.效率
要基本达到平均为O(1)的时间复杂度。- Hash算法系列-简介
- Hash算法简介
- 一致性hash算法简介
- 一致性hash算法简介
- 一致性Hash算法简介
- Hash 算法简介
- 计算机算法领域HASH简介
- Hash算法系列-具体算法(HashedWheelTimer)
- 数据结构和算法系列 - 一致性hash算法
- Hash算法系列-具体算法(url hash)
- 常见hash算法的原理简介
- Hash算法系列-应用(查找)
- Hash算法系列-应用(负载均衡)
- Hash算法系列-应用(加密)
- hash简介
- Hash简介
- hash简介
- 算法系列-一致性哈希算法consistent hash
- 情结嵌入式
- Ubuntu 常见问题
- Linux下的Source Insight+Ubuntu 10.04使用Wine安装Source
- 真假武侠--影评之《武侠》
- HDU 4026
- Hash算法系列-简介
- 两个div块中的文字所占用的高度在不同浏览器中不一致,此时应设置两个div块中height和line-height
- Android UI 优化 使用<include/>和 <merge />标签
- 运用WCF来简化Ajax代码
- 用于检测进程的shell脚本
- source insight 3.5 如何增强阅读代码的性能
- Android Launcher View构架浅析
- EL表达式 (详解)
- Java 类集