《算法图解》NOTE 5 散列表

作者: billyang916 | 来源:发表于2018-05-31 00:21 被阅读10次

这是《算法图解》的第五篇读书笔记,内容主要涉及散列表(hash table)。

1.散列表简介

散列表,又名哈希表,是一种数据结构。它是将用于搜索的键按照一个函数(哈希函数)转化为数组的索引,然后在索引所对应的数组元素中存放与键关联的内容。
从本质上来说,哈希表是一个数组,一个稀疏数组,但这个数组的索引是某个键的映射值,键与索引的映射关系可用哈希函数来表示。
在python中,最常见的哈希表的数据类型就是字典(dict)。

2.散列表的特点

2.1优点

由于散列表本质上是数组,因此支持随机访问,其时间复杂度为O(1)。同时,键的逻辑顺序并不是依赖于数组的索引序列,所以支持快速插入和删除键。

2.2缺点

对散列函数有较高的要求。为避免不同的键映射到同一个索引的情况(此种情况被称为冲突),散列函数必须能尽可能地将键均匀地映射到数组地索引。
可能需要重新调整数据的大小,即迁移数据的内存位置。发生调整数据的大小的情况主要是由于为减少冲突情况的发生概率,数组中有2/3的元素被填充后数据就需要调整内存大小。
同时,为避免冲突引起问题,需预先设定发生冲突时的解决方案。
综上所述,散列表使用时,对于内存的开销较大,但能依次获得较高的数据处理速度。即“用空间换时间”。

3.应用

散列表可用于查找以及信息加密。

相关文章

  • 《算法图解》NOTE 5 散列表

    这是《算法图解》的第五篇读书笔记,内容主要涉及散列表(hash table)。 1.散列表简介 散列表,又名哈希表...

  • 代码小工蚁的#《算法图解》#学习笔记-C5散列表

    代码小工蚁的#《算法图解》#学习笔记-C5散列表C5 散列表hash tables 一、散列函数hash func...

  • 算法图解--散列表

    散列表 也叫哈希表,主要知识点为散列函数,冲突解决方案。 散列函数散列函数是这样的函数,无论你给它什么数据,它都会...

  • 算法图解-散列表

    1. 散列表 散列表由键和值组成,散列表将键映射到值。 在复杂数据结构中,散列表可能是最有用的,也被称为散列映射、...

  • 2021-02-18 假期刚过,面试你准备了HashMap吗

    程序的本质是数据结构和算法(执行逻辑)数组栈队列链表树散列表堆图 图解HashMap 数组 + 链表 + 红黑树 ...

  • 哈希表查找概述

    0.前言 本节内容如下:1.散列表查找定义2.散列函数的构造方法3.处理散列冲突的方法4.散列表查找算法实现5.S...

  • 哈希算法

    什么是哈希算法 了解哈希算法需要了解以下几个概念。 散列表(hash table) 与散列函数 散列表也叫哈希表是...

  • 散列表算法

    散列表算法又称为Hash list(哈希表)。散列表由散列函数和一个数组组成。通过像散列函数输入一个值,散列函数返...

  • 《算法图解》书摘-散列表/广度优先搜索

    欢迎访问我的博客:http://wangnan.tech 第五章 散列表 散列函数“将输入映射到数字” 散列函数总...

  • 算法图解五(散列表+广度优先搜索)

    散列表 第一次见这三个字,还以为是什么高深的东西。吓得我赶紧仔细研读。 别名(散列映射,映射,字典,关联数组) 定...

网友评论

    本文标题:《算法图解》NOTE 5 散列表

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