美文网首页
哈希表(数据结构及算法06)

哈希表(数据结构及算法06)

作者: CaoMeng | 来源:发表于2020-06-16 13:35 被阅读0次
特点:

数组(顺序表):寻址容易
链表:插入与删除容易
哈希表:寻址容易,插入删除也容易的数据结构

Hash table:

哈希表(Hash table,也叫散列表):
是根据关键码值(Key value)而直接进行访问的数据结构,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。关键码值(Key value)也可以当成是key的hash值。这个映射函数叫做散列函数。存放记录的数组叫做散列表,如下图:


image.png
Hash table例子:

Key : {14, 19, 5, 7, 21, 1, 13, 0, 18}
散列表: 大小为13 的数组 a[13];
散列函数: f(x) = x mod 13;

hashtable需要自定义的内容:
1、散列函数与散列表大小?
2、hash 冲突的解决方案?
装填因子:为什么需要这个值?因为数据越接近数组最大值,可能产生冲突的情况就越多

缺点:扩容需要消费大量的空间和性能
由于装填因子的原因,Hash table不可能全部装满元素的,总有一部分是空着的,这样消费大量的空间。其次每一次扩容都会重新计算全部的Key值对应的Hash值,性能上的消耗也比较大。

Hash table设计:拉链法-解决哈希冲突

JDK1.8以前:小数据还可以,面对大数据这种存储结构存在很大压力


image.png

JDK1.8以后:不怕大数据当哈希值是一样的情况下,数据到了一定的阈值之后则会采用红黑树结构进行存储


image.png

相关文章

  • 哈希表(数据结构及算法06)

    特点: 数组(顺序表):寻址容易链表:插入与删除容易哈希表:寻址容易,插入删除也容易的数据结构 Hash tabl...

  • 数据结构线性表

    title: 06-数据结构及算法-线性表date: 2019-11-17 20:34:00tags: 数据结构及...

  • 「Redis源码解读」—数据结构(二)哈希表

    Redis的字典使用哈希表作为底层实现 知识点 1.数据结构 哈希节点 哈希表 类型处理函数 2.哈希 哈希算法 ...

  • MySQL索引简述--哈希索引

    哈希算法 哈希算法时间复杂度为O(1),且不只存在于索引中,每个数据库应用中都存在该数据结构。 哈希表 哈希表也为...

  • 九、哈希表

    这一节记录一下哈希表的学习 持续更新中...数据结构与算法系列博客:一、数据结构与算法概述二、数组及LeetCod...

  • 数据结构和算法

    1.哈希表哈希算法详解(附带 iOS 开发中实际应用) 2.链表iOS 数据结构之链表

  • 刷穿剑指offer-Day14-哈希表I 基础知识整理

    刷穿剑指offer-Day14-哈希表I 基础知识整理 引子 哈希表作为算法解题中的top数据结构,因为其查找、插...

  • 数据结构_哈希表(Java)

    在讲解HashMap集合之前,我们先说说一个重要的数据结构---哈希表。哈希表是一种非常优秀数据结构,对哈希表进行...

  • hash-table基础以及一些运用例子

    最近在复习算法和数据结构 ,这章把hash表的概念和相关题目进行汇总。 一、前言 1.1、哈希表和数组...

  • leetcode和牛客网刷题

    在上学时学过《数据结构和算法》这门课,当时学习了数组、链表、哈希表、二叉树、图等数据结构,还有排序算法、二分查找、...

网友评论

      本文标题:哈希表(数据结构及算法06)

      本文链接:https://www.haomeiwen.com/subject/pfplxktx.html