社区
C语言
帖子详情
散列表的优点在哪里呢
hswshy
2016-06-04 06:24:00
我对散列表的理解就是把信息分散储存,不知道这么理解对吗?如果是这样,那这么做的优点是什么呢?为什么不直接把数据存储在一个紧密的数组里??
刚刚看散列,可能对他的理解不深,请各位多多指教。谢谢。
...全文
427
6
打赏
收藏
散列表的优点在哪里呢
我对散列表的理解就是把信息分散储存,不知道这么理解对吗?如果是这样,那这么做的优点是什么呢?为什么不直接把数据存储在一个紧密的数组里?? 刚刚看散列,可能对他的理解不深,请各位多多指教。谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lm_whales
2016-06-05
打赏
举报
回复
平均约一次查找,即可找到要找的元素
paschen
2016-06-05
打赏
举报
回复
最主要的优点:这样查找效率高,计算一下哈希值就可以直接找到对应的元素,而不需要逐个去比较
hswshy
2016-06-05
打赏
举报
回复
明白了 谢谢各位
罗博士
2016-06-04
打赏
举报
回复
把散列表的名字改为哈希,再去琢磨。
小灸舞
版主
2016-06-04
打赏
举报
回复
数组
优点:插入块如果知道坐标可以快速去地存取
缺点:查找慢,删除慢,大小固定
有序数组
优点:比无序数组查找快
缺点:删除和插入慢,大小固定
栈
优点:提供后进先出的存取方式
缺点:存取其他项很慢
队列
优点:提供先进先出的存取方式
缺点:存取其他项都很慢
链表
优点:插入快,删除快
缺点:查找慢
二叉树
优点:查找,插入,删除都快(如果数保持平衡)
缺点:删除算法复杂
红-黑树
优点:查找,插入,删除都快,树总是平衡的
缺点:算法复杂
2-3-4树
优点:查找,插入,删除都快,树总是平衡的。类似的树对磁盘存储有用
缺点:算法复杂
哈希表
优点:如果关键字已知则存取速度极快,插入块
缺点:删除慢,如果不知道关键则存取很慢,对存储空间使用不充分
堆
优点:插入,删除块,对最大数据的项存取很快
缺点:对其他数据项存取很慢
图
优点:对现实世界建模
缺点:有些算法慢且复杂
dustpg
2016-06-04
打赏
举报
回复
分开储存的是链表....hash表是连续储存目的是将搜索时间复杂度降到O(1), 而一般数组搜索时间复杂度O(n),二叉树是O(log(n)),哪个效率一看就知道了
数据结构与算法之
散列表
详解
开放地址法的
优点
是实现简单,内存消耗低,但是它的缺点是容易出现二次聚拢问题,即表中的元素会聚集在一块。MD5哈希算法得到的散列值是唯一的、确定的,这是保证散列值分布均匀的基础。假设m个关键字被均匀地散布在一个大小为p的区域内,
散列表
的长度为m,我们可以估算出
散列表
的容量为: c = m/p。在实际使用中,需要根据具体情况选择合适的散列函数和解决哈希冲突的方法,以及合适的
散列表
长度,才能使
散列表
发挥最优效果。路由器内部的许多算法都基于
散列表
,通过
散列表
可以很快地查找到对应的端口号,实现数据包的转发和路由。
数据结构☞
散列表
散列表
(Hash Table)
散列表
的英文叫“Hash Table”,我们平时也叫它“哈希表”或者“Hash 表”。
散列表
用的是数组支持按照下标随机访问数据的特性,所以
散列表
其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组,就没有
散列表
。 key:键或者关键字。 散列函数(或“Hash 函数”“哈希函数”):把key值转化为数组下标的映射方法。 散列函数计算得到的值就叫作散列值(或“Hash 值”“哈希值”)。 散列函数 散列函数设计的基本要求: 散列函数计算得到的散列值是一个非负整
【数据结构】
散列表
知识点
1. 散列存储的特性 散列存储:
散列表
,采用的存储方式是散列存储。那么何为散列存储呢?散列存储是根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储。采用散列存储的方式存储数据时,具备的
优点
是在
散列表
中检索、增加和删除结点的操作很快;相反,它的缺点也相对比较明显,在插入结点的过程中,若散列函数选择不好,就可能在
散列表
中出现元素存储单元的冲突,解决冲突会额外的时间和空间开销,费时费力。 2. 什么是
散列表
散列表
:
散列表
是根据数据元素的关键字而直接进行访问的数据结构。通俗地讲,就是
散列表
建立了
数据结构与算法之美(
散列表
)
数据结构与算法之美(
散列表
)一、
散列表
的由来二、如何设计散列函数?三、散列冲突的解决方法开放寻址法①核心思想②线性探测法(Linear Probing) 一、
散列表
的由来 1.
散列表
来源于数组,它借助散列函数对数组这种数据结构进行扩展,利用的是数组支持按照下标随机访问元素的特性。 2.需要存储在
散列表
中的数据我们称为键,将键转化为数组下标的方法称为散列函数,散列函数的计算结果称为散列值。 3.将数据存储在散列值对应的数组下标位置。 二、如何设计散列函数? 散列函数计算得到的散列值是一个非负整数; 如果ke
散列表
_学习笔记
1)哈希表简介:
散列表
又称为哈希表,也被称为散列映射,映射,字典,关联数组等。
散列表
的查找、插入、删除速度都很快,目前大多数优秀的编程语言都提供了
散列表
实现。 除此之外,因为哈希表的key不允许重复,所以
散列表
还非常适合用于防止重复。
散列表
存储元素的形式由键和值组成。 2)
散列表
的结构:
散列表
这种数据结构由散列函数和数组组成; 相比于数组和链表,
散列表
更为复杂一些些,它使用散列函数来确定元素的存储位置; 在平均情况下,
散列表
的查找速度与数组一样快,而插入和删除的速度和链表一样快,因此
C语言
69,368
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章