• 第十一周学习总结


    20162315 2017-2018-1 《程序设计与数据结构》第11周学习总结

    教材学习内容总结

    本周的教材学习内容是学习第二十章-哈希方法的内容。

    • 哈希方法

      哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。

    • 哈希函数

      在哈希方法中,元素保存在哈希表中,元素在表中的位置由哈希函数决定。虽然知道数据集就有可能发现理想的哈希函数,但是我们不需要哈希函数如此完美以获得哈希表的好性能。我们的目标仅仅是寻找一个函数,它能合理地将元素散列到表中以避免冲突。教材上提到了以下建立哈希函数的方法:除法方法,折叠方法,平方取中方法,基数转换方法,数字分析方法。长度依赖方法。

    • 理想哈希函数:每个元素映射到表中唯一位置的哈希函数称为理想哈希函数。

    • 处理冲突的链式方法中,将哈希表看成是集合的表而不是各独立单元的表。

    • 处理冲突的开放地址方法,即在表中寻找不同于钙元素初次哈希看到的另一个开放的位置。

    教材学习中的问题和解决过程

    -问题1:书上教材中提到:“如果关键字是社会保障码:987-65-4321”,可以将它们分为3段:987,654和321“将它们想加得到1962.假定我们想要一个3位的关键字,此时可以再使用除法或是抽取方法得到需要的下标”,我对这一段文字的疑惑是为什么要将三个分段的号码加起来,得到的下标又是做什么的?

    • 问题1解决方法:我在网上查阅了更多的信息之后有了一些思考:折叠算法的意义是把将数据的表示压缩,而哈希表中数据的位置由下标表示出来,所以要保证下标有唯一性,除法方法中不同的数据除以同一个数I(比如表长),会得到不同的余数(余数可以表示下标值),这样我们就可以得到这些关键字的不同的下标。

    代码调试中的问题和解决过程

    • 我在实现

    代码托管

    gvIZn.png

    上周考试错题总结

    • 上周本课程无网上测试

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
    目标 5000行 30篇 400小时
    第一周 66/200 1/1 6/10
    第二三周 370/400 2/3 12/18
    第四五周 400/800 2/5 24/42
    第六七周 800/1600 3/8 36/54
    第八九周 1400/3000 2/10/ 22/76
    第十周 600/3600 3/13 12/88
    第十一周 500 4100 1/14
    • 计划学习时间:10小时

    • 实际学习时间:10小时

  • 相关阅读:
    初识redis
    支付宝退款操作
    《地质灾害防治这一年2013》读书摘要
    地质灾害防治工作的经验和体会
    关于地质灾害防治的一些认识
    应急信息报送和值班工作的培训学习
    《地质灾害防治这一年2012》读书摘要
    关于开源GIS和商业GIS的讨论
    B树索引学习
    cordova 开发 ios app 简要流程
  • 原文地址:https://www.cnblogs.com/cs162315/p/7861313.html
Copyright © 2020-2023  润新知