• 哈希表面试题-转载


    散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

    建表复杂度O(n)

    查找复杂度O(1)

    解决碰撞的方法:

    1. 链接

    2. 开放寻址

    3. 再哈希

    这是今年腾讯10.15的一道笔试题,理解之,就理解了链接和开放寻址法:

    已知一个线性表(382574635248),采用的散列函数为H(Key)=Key%7,将元素散列到表长为7的哈希表中存储。若采用线性探测的开放定址法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为 ____ 

    若利用拉链法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为 ____

    38 25 74 63 52 48 mod 7分别是 3 4 4 0 3 6

    所以采用线性探测的开放定址法解决冲突,表为:

    63,48, ,38,25,74,52

    找38,1次

    找25,1次

    找74,2次

    找63,1次

    找52,4次

    找48,3次

    所以成功查找的平均长度为(1+1+2+1+4+3)/6=2

    拉链法

    建立的为:

    63,,,38 –>52,25->74, ,48

    找38,1次

    找25,1次

    找74,2次

    找63,1次

    找52,2次

    找48,1次

    所以成功查找的平均长度为(1+1+2+1+2+1)/6=1.333

  • 相关阅读:
    Flask程序相关配置加载的三种方式
    Redis数据库在windows系统下的安装及使用
    Redis数据库介绍
    python中模块的制作
    4.ORM框架的查询
    3.ORM框架一对多的关系及使用
    2.ORM框架添加,修改,删除操作
    1.ORM介绍,基本配置及通过ORM框架创建表
    4.集合
    3.字典
  • 原文地址:https://www.cnblogs.com/iamswf/p/4464172.html
Copyright © 2020-2023  润新知