散列表的优点在哪里呢

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)),哪个效率一看就知道了

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧