数据结构的时间复杂度与空间复杂度、及相关证明
2016-10-17 18:21
309 查看
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<2⇒k=loglogn
显然,loglogn 的时间复杂度要小于 logn,因为 logn<n,而 logx 又是一个单调递减函数。
再来看一道稍微复杂点的情况,T(n)=n√T(n√)+n,等式两边同时除以 n,则可化为:
T(n)n=T(n√)n√+1⇒f(n)=f(n√)+1
由上面的情况可知,f(n)⇒O(loglogn),因此原始问题的时间复杂度为 O(nloglogn)
相关文章推荐
- 数据结构之时间复杂度和空间复杂服
- 数据结构 常用的算法的时间复杂度和空间复杂度
- 常用的数据结构操作与排序算法的时间和空间复杂度
- 数据结构--算法(时间复杂度和空间复杂度)
- 【c++】关于时间复杂度和空间复杂度的相关问题
- 数据结构和算法学习02-时间复杂度和空间复杂度
- 一步一步学习数据结构(1)-时间空间复杂度
- 数据结构排序问题---堆排序及各种排序时间空间复杂度
- 《数据结构》2.10设计一个算法,删除顺序表中值为item的元素,要求算法的时间复杂度是O(n),空间复杂度是O(1)
- 数据结构(一):数据结构的基本概念和算法的时间和空间复杂度
- 数据结构入门——时间复杂度和空间复杂度
- 时间复杂度和空间复杂度2 - 数据结构和算法04
- 数据结构几种排序算法的时间和空间复杂度总结
- 数据结构2:算法时间复杂度和空间复杂度的计算
- 数据结构与算法2——时间复杂度和空间复杂度
- 常用的数据结构操作与排序算法的时间和空间复杂度
- CPython数据结构相关操作的时间复杂度
- 时间复杂度和空间复杂度2 - 数据结构和算法04
- 重读数据结构之--算法的时间空间复杂度