首页 > 编程语言 > 详细

数组、链表、散列表

时间:2019-10-29 17:49:56      阅读:73      评论:0      收藏:0      [点我收藏+]
  • 数组:
  1. 数组存放的所有元素在内存中是相连的(一块内存空间)
  2. 添加新元素的速度会很慢(因为元素相连,增加元素的时候如果没有了空间需要重新申请内存空间全部转移元素)
  3. 随机读取元素时,数组的效率很好,因为可以很快的找到索引位置
 
 
  • 链表:
  1. 链表中的元素可存储在内存的任何地方(每个元素存储了下一个元素的地址)
  2. 添加元素很容易
  3. 在需要读取链表最后一个元素的时候,不能直接读取,因为不知道它所处的地址,必须先访问第一个元素,从中获取第二个元素的地址,以此类推直到访问最后一个元素,所以效率很低
  4. 需要同时读取所有元素时,链表的效率很好
 
  • 散列表:
  1. 散列函数:将输入映射到数字
  2. 必须是一致的
  3. 将不同的输入映射到不同的数字
 
  1. 冲突:两个输入映射到的数字相同,
  2. 处理冲突:如果两个键映射到了一个位置,那么就在这个位置存储一个链表
  3. 避免冲突:
  4. 较低的填装因子,良好的散列函数。
  5. 填装因子度量的是散列表中有多少位置是空的,填装因子越低发生冲突的可能性越小。

数组、链表、散列表

原文:https://www.cnblogs.com/jsersudo/p/11759159.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!