1 介绍
这种电话的记录方式不错,看到电话号码就知道是谁的,而且对应的后面的电话号码仍然没有变化;
实现上面搜索的方式采取的方法是什么呢?不是rank,posi,key 这种方式是call by value;
直接采用数组的话,其空间利用率很低,通过哈希算法可以实现压缩
2 原理
通过散列函数生成散列值,从而减少这个空间;
采用这个方法,就可以实现上面的需求了:
但是会有散列冲突,这个要最大程度上降低这个概率
不同的电话号码,通过散列函数生成了同一个散列值
3 哈希函数
随机性越强,规律性越弱的散列函数越好;有如下方法:
4 散列码转换
通过hashcode(),将关键码key统一转换为一个整数----散列码;然后再利用 散列函数将散列码转为为散列地址;
hashCode()采用重载机制;
5闭散策略
(1)open hashing +closed address
空间利用率太低,不采用;
(2)closed hashing +open address
6 桶排序
(1)最大间隙
(2)基数排序