算法图解-散列表

  散列表,也叫哈希表。特点:查找速度快。

  要点:散列表的实现、冲突和散列函数。

5.1散列函数

要求:

  1. 散列函数的输入、输出必须是一致的,即固定的输入必须对应固定的输出值;
  2. 散列函数的输入、输出最好的唯一的,也即理想情况下映射是唯一的。 《算法图解-散列表》 《算法图解-散列表》
    def check_voter(name):
        if voted.get(name):
            print ("kick them out")
        else:
            voted[name] = True
            print ("let them vote!")

    check_voter(name)

    上面的代码只是通过字典来说明散列表的用法。

5.2应用

  散列表常用于缓存、DNS解析等。

5.3冲突

  如果两个键映射到同一个位置,通过存储链表解决。

5.4性能

  散列表平均情况为O(1),最糟情况为O(n)。

  良好的散列函数使装填因子总小于1。

总结:

  1. 可结合散列函数和数组创建散列表
  2. 应使用可以最大限度减少冲突的散列函数
  3. 散列表的查找、插入和删除速度非常快
  4. 散列表适合用于仿真映射关系
  5. 一旦装填因子超过0.7,就该调整散列表的长度
  6. 散列表可用于缓存数据
  7. 散列表非常适合用于防止重复

示例:C语言实现的数据结构之——哈希表

https://blog.csdn.net/smstong/article/details/51145786

  

    原文作者:算法小白
    原文地址: https://www.cnblogs.com/mofei004/p/8888531.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞