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
    • 第二画出一个长度为模数减一的表
    • 第三将元素加入到相应的位置,如果位置被占据就以链表的形式加到相对应的散列地址的位置

    结果

  • 相关阅读:
    nginx防盗链配置
    nginx禁止非sever_name指定域名访问
    linux下配置python环境 django创建helloworld项目
    node解析修改ngix配置文件
    ~/.ssh/config文件的使用
    SpringCloud-Feign声明式服务调用
    Hystrix 配置参数全解析
    Eureka 的高级使用
    eureka中显示有服务但是通过ribbon调用显示No instances available for service-hello的问题
    EureKa:服务注册与发现
  • 原文地址:https://www.cnblogs.com/CHUNWANG/p/7892512.html
Copyright © 2011-2022 走看看