算法图解五(散列表+广度优先搜索)
2019-10-27 本文已影响0人
Ron_罗恩
散列表
第一次见这三个字,还以为是什么高深的东西。吓得我赶紧仔细研读。
别名(散列映射,映射,字典,关联数组)
定义:
包含额外逻辑的数据结构,使用数列函数和数组创建的一种数据结构。数列函数作用是将输入映射到数字。
散列表是键和值的组成。
优点:
1)查找速度快 (大O算法 O(1))
2)防止重复
在做映射之前,检查当前索引位置是否有值。如果有,就禁止插入。
3)缓存处理
加快查询速度。
广度优先算法
作用:用最短步数,来找到你要的值。
算法剖析:
如果我要从Tom,找到Sandy.
想象一下,第一层是Tom的朋友圈。Tom找了一圈都没有找到,叫Sandy的人。
Tom叫他的朋友,去找下他们朋友圈,有没有叫Sandy的人?
以此类推,最终找到了Sandy.
代码如下:
从标准库中调用了deque.(双向队列)。不了解的朋友,自行百度下,这里不展开说明。PS:
如果你阅读之后,有所收获。请记得点赞哦。o(* ̄︶ ̄*)o。你的支持将是我写作的动力。