散列表的性能分析
平均查找长度(ASL)用来度量散列表查找效率:成功、不成功。
成功:查找的元素在散列表里面
不成功:查找的元素不在散列表里面
主要受三个因素的影响:
- 散列函数是否均匀
- 处理冲突的方法
- 散列表的装填因子
分析: 不同冲突处理方法、装填因子对效率的影响。
上面的只是反应了一般情况下的理论值。
上面的也是反应了一般情况下的理论值。
散列的特点:
- 散列查找 和问题规模没关系。
- 适合字符串的管理
- 散列表,装填因子小的,所用的时间少,因此,散列方法是一个以空间换时间的一种方法。
- 散列方法的存储对关键字的存储是随机的。不便于顺序查找关键字,也不适合于范围查找,或最大值最小值查找
开放地址法:
- 散列表是一个数组,存储效率高,随即查找
- 会产生聚集
分离链式法:
- 散列表是顺序存储和链式存储的结合,链表部分的存储效率和查找效率都比较低。
- 关键字删除不需要“惰性删除”法,从而没有存储“垃圾”。
- 太小的α可能导致空间浪费,大的α又会将付出更多的时间代价,不均匀的链表长度导致时间效率严重地下。
时间: 2024-07-31 14:35:25