散列表hashtable

1、什么是散列表

  1)长度预先设定

  2)元素根据元素对应的键进行保存

  3)通过散列函数将键映射为一个数字,理想情况下键值唯一

2、散列表的优点:实现快速的插入或取用

3、散列表的缺点:查找操作效率低下

4、什么碰撞:两个键通过散列函数映射成同一个值

5、有哪些散列函数,及其原理

    1)将值的每一字符转化为ASCII值,并相加,再对数组长度求余(数组长度最好为质数)

    2)将值的每一个字符转化为ASCII码值乘以一个质数再求和,最后对数组长度取余

6、有哪些处理碰撞的方法,及其原理

    1)开链法:将值保存在一个数组里,当遇到键碰撞时,将值插入数组

    2)线性探测法:将值和键保存至两个table,碰撞时将键和值保存在pos+1的位置

     *当数组长度是存储数据1.5倍的时候用开链法,2倍及以上的时候用线性探测法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据结构与算法--散列表 之前学习了基于链表的顺序查找、基于有序数组的二分查找、二叉查找树、红黑树,这些算法在查找...
    sunhaiyu阅读 666评论 3 5
  • 本文主要介绍散列表(Hash Table)这一常见数据结构的原理与实现。由于个人水平有限,文章中难免存在不准确或是...
    absfree阅读 16,393评论 2 35
  • HashMap 是 Java 面试必考的知识点,面试官从这个小知识点就可以了解我们对 Java 基础的掌握程度。网...
    野狗子嗷嗷嗷阅读 6,691评论 9 107
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,268评论 0 4
  • 什么是哈希表? 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数...
    郝程序猿阅读 2,247评论 1 7