算法图解五(散列表+广度优先搜索)

散列表

第一次见这三个字,还以为是什么高深的东西。吓得我赶紧仔细研读。

别名(散列映射,映射,字典,关联数组)

定义:

包含额外逻辑的数据结构,使用数列函数和数组创建的一种数据结构。数列函数作用是将输入映射到数字。

散列表是键和值的组成。

优点:

1)查找速度快 (大O算法 O(1))

2)防止重复

    在做映射之前,检查当前索引位置是否有值。如果有,就禁止插入。

3)缓存处理

    加快查询速度。


广度优先算法

作用:用最短步数,来找到你要的值。

算法剖析

如果我要从Tom,找到Sandy.

想象一下,第一层是Tom的朋友圈。Tom找了一圈都没有找到,叫Sandy的人。

Tom叫他的朋友,去找下他们朋友圈,有没有叫Sandy的人?

以此类推,最终找到了Sandy.


代码如下:

从标准库中调用了deque.(双向队列)。不了解的朋友,自行百度下,这里不展开说明。

PS:

如果你阅读之后,有所收获。请记得点赞哦。o(* ̄︶ ̄*)o。你的支持将是我写作的动力。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容