BFS时间复杂度

BFS算法通过队列进行分层查找,空间复杂度在最坏情况下为O(N)。在邻接表中,时间复杂度为O(N+E),邻接矩阵中则为O(N^2)。

在这里插入图片描述
BFS是一种借助队列来存储的过程,分层查找,优先考虑距离出发点近的点。无论是在邻接表还是邻接矩阵中存储,都需要借助一个辅助队列,N个顶点均需入队,最坏的情况下,空间复杂度为O(N)O(N)O(N)

邻接表形式存储时,每个顶点均需搜索一次,时间复杂度T1=O(N)T1=O(N)T1=O(N),从一个顶点开始搜索时,开始搜索,访问未被访问过的节点。最坏的情况下,每个顶点至少访问一次,每条边至少访问1次,这是因为在搜索的过程中,若某结点向下搜索时,其子结点都访问过了,这时候就会回退,故时间复 杂度为O(E)O(E)O(E),算法总的时间复 度为O(N+E)O(N+E)O(N+E)

邻接矩阵存储方式时,查找每个顶点的邻接点所需时间为O(N)O(N)O(N),即该节点所在的该行该列。又有nnn个顶点,故算总的时间复杂度为O(N2)O(N^2)O(N2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值