zoukankan      html  css  js  c++  java
  • 哈希表面试题-转载

    散列表(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

  • 相关阅读:
    Google Map API基本概念(转载)很好的例子
    Sql Exception Handling & Throw Exception
    幸福人生讲座(十):五伦中哪一伦最重要?
    Delete Database Log
    杨澜语录
    余世雄 如何提升职场“执行力”
    红楼女梦
    假如我真的看透了
    余世维 有效沟通
    习惯修养
  • 原文地址:https://www.cnblogs.com/iamswf/p/4464172.html
Copyright © 2011-2022 走看看