当前位置:网站首页>Deng Junhui's notes on data structure and algorithm learning - Chapter 9
Deng Junhui's notes on data structure and algorithm learning - Chapter 9
2020-11-09 08:20:00 【osc_0m0d4mbq】
List of articles
day58
Chapter nine The dictionary
9. The dictionary
9.b Hash principle

Hashing- hash
The data comes from a fairly large space , But the actual data to be stored and organized is a very small subset of it , Space efficiency is extremely low
Compress space

The pigeon nest problem , take x From a larger definition domain , Mapping to a smaller range of values , There are ways to reduce conflict ( Design better hash function or increase hash table length M), But it can't be avoided ( How to solve ?)
9.c Hash function



gcd: The greatest common factor is 1


Take the middle bit , It can make the influence of each digit of the original key code closer to each other , Here's the picture , Square operations can be decomposed into addition operations

The more random the hash function is , The more irregular , The better .

key It may not be an integer , You need to convert it to hashcode, Do it again. , Here's the picture

It is necessary to , If you use a simple calculation method , It's easy to have hash conflicts

9.d Conflict
9.d1 Hash resolves conflicts 1







Skip when searching , Insert directly when inserting .
9.d2 Hash resolves conflicts 2
Closed addressing vs Open addressing
The linear heuristics described above , It's too close to each other , There will be a lot of unnecessary conflicts . You can open the space properly

Suppose the size of a cache is 1KB, Only the pointer is stored in the bucket (4 byte ), Well, unless 16 Secondary hash conflict , To make the cache invalid , Need extra I/O.

b+a≥2, yes M The nontrivial factor of , This is related to M Contradict prime numbers .

For some primes ( for example 7,11) The long table , The two-way search chain works , Some primes ( for example 5,13) The effect of the surface length is not good .




9.e bucket / Count sorting
among n Is the number of elements ,[0,M) Is the element range


Where the red line is the integral of the blue line
Linear scan over and over again count[], Scan again count[] obtain accum[], You can sort in linear time .
版权声明
本文为[osc_0m0d4mbq]所创,转载请带上原文链接,感谢
边栏推荐
- C++邻接矩阵
- Have you ever thought about why the transaction and refund have to be split into different tables
- Ten year itch of programmer
- python生日贺卡制作以及细节问题的解决最后把python项目发布为exe可执行程序过程
- 几行代码轻松实现跨系统传递 traceId,再也不用担心对不上日志了!
- B. protocal has 7000eth assets in one week!
- Apache Iceberg 中三种操作表的方式
- 商品管理系统——整合仓库服务以及获取仓库列表
- 服务器性能监控神器nmon使用介绍
- 20201108 programming exercise exercise 3
猜你喜欢
随机推荐
重新开始学习离散数学
Travel notes of csp-s 2020
23张图,带你入门推荐系统
Operation 2020.11.7-8
2020,Android开发者打破寒冬的利器是什么?
操作系统之bios
当我们聊数据质量的时候,我们在聊些什么?
梁老师小课堂|谈谈模板方法模式
OpenGL ES 框架详细解析(八) —— OpenGL ES 设计指南
Detailed analysis of OpenGL es framework (8) -- OpenGL es Design Guide
The vowels in the inverted string of leetcode
1. What does the operating system do?
基于链表的有界阻塞队列 —— LinkedBlockingQueue
OSChina 周一乱弹 —— 程序媛的青春
2.计算机硬件简介
App crashed inexplicably. At first, it thought it was the case of the name in the header. Finally, it was found that it was the fault of the container!
Exception capture and handling in C + +
APP 莫名崩溃,开始以为是 Header 中 name 大小写的锅,最后发现原来是容器的错!
Sublime text3 插件ColorPicker(调色板)不能使用快捷键的解决方法
架构中台图


![[Python from zero to one] 5. Detailed explanation of beautiful soup basic syntax of web crawler](/img/e8/dd70ddf3c2027907f64674676d676e.jpg)

