zoukankan      html  css  js  c++  java
  • 课上有关散列表冲突解决的两种方法的测试的补做

    课上有关散列表冲突解决的两种方法的测试的补做

    题目

    利用除留余数法为下列关键字集合的存储设计hash函数,并画出分别用开放寻址法和拉链法解决冲突得到的空间存储状态(散列因子取0.75)
    
    关键字集合:85,75,57,60,65,(你的8位学号相加值)20,98,74,89,12,5,46,97,13,69,52,92
    

    开放地址法

    步骤
    • 第一首先要确定散列表的模数根据老师给的公式m = n/a 其中n= 17 a= 0.75 所以m=23,取模数为23

    • 第二步画出除以模数之后的余数的表:

    • 之后就是将元素加入到表中:

    1. 将元素按上面给的顺序加入直到第一次冲突都可以直接加入,直接将85、75、57、60、65、20就可直接加入如图:

    2.然后将重复的元素加入,加入时一直顺延直到离原先位置最近的没有元素的位置(不管有没有占据后来元素的位置)一直到最后都没有空的话就回到表头开始顺延直到有空加入元素。在下图中的52 散列地址为15的元素,它取余是6但是6的位置已经被占领后面的位置也一直被其他元素占领直到它在比较了10次之后才找到空位:

    结果

    拉链法

    步骤

    • 第一首先要确定散列表的模数根据老师给的公式m = n/a 其中n= 17 a= 0.75 所以m=23,取模数为23
    • 第二画出一个长度为模数减一的表
    • 第三将元素加入到相应的位置,如果位置被占据就以链表的形式加到相对应的散列地址的位置

    结果

  • 相关阅读:
    LeetCode 79. 单词搜索
    LeetCode 1143. 最长公共子序列
    LeetCode 55. 跳跃游戏
    LeetCode 48. 旋转图像
    LeetCode 93. 复原 IP 地址
    LeetCode 456. 132模式
    LeetCode 341. 扁平化嵌套列表迭代器
    LeetCode 73. 矩阵置零
    LeetCode 47. 全排列 II
    LeetCode 46. 全排列
  • 原文地址:https://www.cnblogs.com/CHUNWANG/p/7892512.html
Copyright © 2011-2022 走看看