数据结构的时间复杂度与空间复杂度、及相关证明

本文探讨了有向图和无向图采用邻接表表示形式时的空间复杂度,并分析了特定递归方程的时间复杂度。对于邻接表表示的图,空间复杂度为O(V+E),其中V为顶点数,E为边数。此外,文章还讨论了T(n)=T(⌊n√⌋)+1及T(n)=n√T(n√)+n的时间复杂度分别为O(loglogn)和O(nloglogn)。

0. 有向图无向图的时空复杂度

图的时空复杂度与其具体的表示形式有关,对于图的邻接表的表示形式,记 Adj[v] 为顶点 v 的出边构成的列表。为了考量其空间复杂度,首先需要记录全部的顶点,也即即使全部的顶点的出度均为0(顶点间相互孤立),仍然需要 O(V) 的时间复杂度。

  • 图是一种连接图,每条边在 list 中仅出现一次,
  • 图是无连通图,每条边在 list 中却出现两次;

也即以上两种情况下,全部 list 中的元素之和,不超过边数目的2倍,又由 2E ⇒ O(E),因此为了记录顶点以及记录边,空间复杂度为 O(V+E),当然也等于 O(max(V,E)),不妨设 c=2,则 O(max(V,E))=2max(V,E)V+E

1. T(n)=T(n)+1

本质上是看将一个数开多少次平方根,其值才会接近于 1.

n12k=a,1<a<2k=loglogn

显然,loglogn 的时间复杂度要小于 logn,因为 logn<n,而 logx 又是一个单调递减函数。

再来看一道稍微复杂点的情况,T(n)=nT(n)+n,等式两边同时除以 n,则可化为:

T(n)n=T(n)n+1f(n)=f(n)+1

由上面的情况可知,f(n)O(loglogn),因此原始问题的时间复杂度为 O(nloglogn)

转载于:https://www.cnblogs.com/mtcnn/p/9423299.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值