栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

《数据结构与算法设计之美》学习笔记(八)散列表

《数据结构与算法设计之美》学习笔记(八)散列表

文章目录

序言一、散列函数设计要求二、解决散列冲突的方法

1.开放寻址法2.链表法3.如何选择

序言

散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组,就没有散列表。

一、散列函数设计要求

1.散列函数计算得到的散列值是一个非负整数;

2.如果key1 = key2,那hash(key1) == hash(key2);

3.如果key1 ≠ key2,那hash(key1) ≠ hash(key2)。

二、解决散列冲突的方法 1.开放寻址法

当我们往散列表中存放数据的时候,如果发现当前位置已被占用,则继续往后寻找一个空的位置安放数据。

2.链表法

每一个存放数据的位置,都是一条链表,对于每一个插入的数据,都将其插入到这个链表中。

3.如何选择

(1)当数据量比较小、装载因子小的时候,适合采用开放寻址法。
(2)基于链表的散列冲突处理方法比较适合存储大对象、大数据量的散列表,而且,比起开放寻址法,它更加灵活,支持更多的优化策略

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/742129.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号