数据结构的时间复杂度与空间复杂度、及相关证明
0. 有向图无向图的时空复杂度
图的时空复杂度与其具体的表示形式有关,对于图的邻接表的表示形式,记 Adj[v] 为顶点 v 的出边构成的列表。为了考量其空间复杂度,首先需要记录全部的顶点,也即即使全部的顶点的出度均为0(顶点间相互孤立),仍然需要 O(V)O(V) 的时间复杂度。
- 图是一种连接图,每条边在 list 中仅出现一次,
- 图是无连通图,每条边在 list 中却出现两次;
也即以上两种情况下,全部 list 中的元素之和,不超过边数目的2倍,又由 2E ⇒ O(E),因此为了记录顶点以及记录边,空间复杂度为 O(V+E)O(V+E),当然也等于 O(max(V,E))O(\max(V,E)),不妨设 c=2c=2,则 O(max(V,E))=2max(V,E)≥V+EO(\max(V,E))=2\max(V,E)\geq V+E
1. T(n)=T(⌊n√⌋)+1T(n)=T(\lfloor\sqrt n\rfloor)+1
本质上是看将一个数开多少次平方根,其值才会接近于 1.
n^{\frac1{2^k}}=a, \quad 1
显然,loglogn\log\log n 的时间复杂度要小于 logn\log n,因为 logn<n\log n,而 logx\log x 又是一个单调递减函数。
再来看一道稍微复杂点的情况,T(n)=n√T(n√)+nT(n)=\sqrt nT(\sqrt n)+n,等式两边同时除以 nn,则可化为:
\frac{T(n)}{n}=\frac{T(\sqrt n)}{\sqrt n}+1 ⇒ f(n)=f(\sqrt n)+1
由上面的情况可知,f(n)⇒O(loglogn)f(n) ⇒ O(\log \log n),因此原始问题的时间复杂度为 O(nloglogn)O(n\log \log n)
数据结构的时间复杂度与空间复杂度、及相关证明相关推荐
- 【数据结构】---时间复杂度与空间复杂度
时间复杂度与空间复杂度 引言 一.O渐进表示法(重点) 二.时间复杂度(必考点) 1.定义 2.常见的时间复杂度有 3.计算方法 4.最坏时间复杂度和平均时间复杂度 三.空间复杂度(重点) 1.定义 ...
- 数据结构之时间复杂度和空间复杂度
数据结构入门 文章目录 数据结构入门 前言 一.时间复杂度 1.定义 2.大O的渐进表示法 3.例题 1)Func3 2)冒泡排序 3)二分查找 4)阶乘递归 5)斐波那契递归 二.空间复杂度 1.定 ...
- 【数据结构】时间复杂度和空间复杂度的计算
目录 一.数据结构 1.什么是数据结构 2.什么是算法 3.数据结构和算法的重要性 4.如何学好数据结构和算法 二.算法效率 三.时间复杂度 1.时间复杂度的概念 2.时间复杂度的表示方法 3.算法复 ...
- 【数据结构】—时间复杂度or空间复杂度以及基础题目练习
小菜坤日常上传gitee代码:https://gitee.com/qi-dunyan ❤❤❤ 个人简介:双一流非科班的一名小白,期待与各位大佬一起努力! 推荐网站:cplusplus.com 目录 前 ...
- 【数据结构】时间复杂度和空间复杂度
文章目录 前言 1. 什么是数据结构 2. 什么是算法 正文 1. 算法效率 1.1 如何衡量一个算法的优劣 1.2 算法的复杂度 2. 时间复杂度 2.1 定义 2.2 计算 2.3 大O的渐进表示 ...
- 408考研数据结构复习-时间复杂度与空间复杂度-附统考真题
文章目录 一.时间复杂度 二.空间复杂度 三.相关题目 一.时间复杂度 一个语句的频度是指该语句在算法中被重复执行的次数.算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,时间复杂度主 ...
- 【数据结构】时间复杂度_空间复杂度
作者:旧梦拾遗186 专栏:数据结构成长日记 每日励志: 如果有一天,你的努力配得上你的梦想,那么你的梦想也绝对不会辜负你的努力. 前言: 小编带大家来学习数据结构中的复杂度问题. 目录 1.算法效率 ...
- <数据结构>时间复杂度及空间复杂度
目录 一.概念 1.1.算法效率 1.2.时间复杂度 1.3.空间复杂度 二.计算 2.1.大O的渐进表示法 2.2.时间复杂度计算 例题: 2.3.空间复杂度计算 例题 三.有复杂度要求的习题 一. ...
- 浅淡数据结构时间复杂度和空间复杂度
文章目录 前言 1.时间复杂度和空间复杂度的相关介绍 1.为什么要引入时间复杂度和空间复杂度的概念 2.什么是时间复杂度和空间复杂度 2.具体示例分析 1.大O法只保留高阶项 2.一般情况关注的是算法 ...
最新文章
- 【强化学习】Actor-Critic
- 深藏不露,挖掘4种大脑网络中的管理工具
- java返回两个string_java – 为什么String.intern()方法返回两个不同的结果?
- P2278-[HNOI2003]操作系统【堆】
- multiprocess模块使用进程池调用apply_async()提交的函数及回调函数不执行问题
- 使用Keras框架进行单变量时间序列预测——以上证指数为例
- 笔刷怎么做_零基础怎么学板绘?板绘小白必备基础知识
- 中国电信天翼网关路由器后台登录useradmin用户忘记密码的解决方法默认密码管理员密码工作人员密码
- ESPDUINO上传数据到oneNet云平台
- Domain Adaptation 论文笔记
- js获取最近12个月
- win7计算机文件浏览不了,win7系统计算机文件打不开的解决方法
- ADI Blackfin DSP处理器-BF533的开发详解60:DSP控制ADXL345三轴加速度传感器-电子水平仪(含源码)
- 硬件设计【1】——光耦的基本原理及TLP521使用
- Linux驱动开发8 platform驱动分隔、分离与分层
- 【蓝桥杯】 最大比例
- 【软件】企业管理解决方案SAP
- 青龙面板之KS普通版、极速版(3/19更新)
- UG二次开发BOM功能GRIP系统初始设置
- layui表格中开启复选框后,怎么获取跨页勾选的全部数据,layui表格获取勾选的所有数据,获取跨页勾选数据的数量,如何预渲染让数据默认勾选上?
热门文章
- cocos2d-x移植android,Cocos2d-x Xcode 移植到 Android stutio
- python repusts模块_Python tslearn包_程序模块 - PyPI - Python中文网
- linux 修改jdk版本 /usr/src/jdk-11.0.11/bin/java: 无法执行二进制文件
- Sqoop导入数据--split by 和 --m(大于1)配合使用
- mysql 客房_mysql – 酒店客房预订系统的数据库设计
- jsx怎么往js里传参数_JSX语法使用详解——终极版
- c++ 编译添加dll_使用MinGW编译OpenCV4源码与配置使用演示
- 剑指offer面试题04. 二维数组中的查找(Array)
- OpenCV——高效遍历图像(C++版本)
- 序列化:protobuf原理