搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
运维做开发
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
低代码的基本架构与技术实现_低代码 元数据模型驱动架构
2
软件定义数据中心(SDDC)最后的两块拼图 – GPU池化和内存池化
3
GitHub官方中文文档正式推出,速度收藏!!_github 的中文官方文档
4
【华为OD机试真题 Python语言】456、分披萨 | 机试真题+思路参考+代码解析(C卷)(本题100%)_【分披萨】python 实现
5
AI绘画StableDiffusion另类灯光打法,让你的照片实现炫酷光效_ai做光线效果
6
单链表的冒泡,快排,选择,插入,归并5种排序算法详解(多图+代码实现)
7
探索未来办公的得力助手 —— Wobot:基于HipChat的插件式机器人
8
PADS layout之元件封装_元器件要封装才能layout
9
SpringCloud GreenWich版本Eureka集群搭建_rg.springframework.cloud greenwich.sr6 ,接入eureka
10
深度学习中的循环神经网络LSTM详解_双向循环lstm网络图
当前位置:
article
> 正文
时间复杂度计算_i=0,count=0;for(i=1)count++的时间复杂度
作者:运维做开发 | 2024-08-22 00:41:50
赞
踩
i=0,count=0;for(i=1)count++的时间复杂度
关键概念
要分析算法的复杂度,通常需要分析循环的运行.
一,假如,某个循环体的复杂度是O(1),那么这个循环的时间复杂度就是O(n).
for(int i = 0; i < n; i++){
//一些列复杂度为O(1)的步骤....
}
通常,如果某个循环结构以线性方式运行n次,并且循环体的时间复杂度都是O(1),那么该循环的复杂度就是O(n).
即使,该循环跳过某些常数部分,只要跳过的部分是线性的,那么该循环体的时间复杂度仍就是O(n).
比如
int count = 1;
while(count < n){
count += 2;
//一些列复杂度为O(1)的步骤....
}
时间复杂度还是O(n)
二,如果循环体的复杂度是对数级的 如下
int count = 1;
while(count < n){
count *= 2;
//一些列复杂度为O(1)的步骤....
}
该循环是O(logn)的, 通常情况是2为底的 也就是O(log2n)
关键概念
循环的时间复杂度等于该循环体的复杂度乘以循环的次数...
三,嵌套循环复杂度分析...
for(int count1 = 0; count1 < n; count1++){
for(int??count2 = 0; count2 < n; count2++){
//一些列复杂度为O(1)的步骤....
}
}
在这种情况下应该 先计算内层循环的时间复杂度,然后用内层的复杂度乘以外层循环的次数.
最内层循环体的时间复杂度都是O(1)所以循环n次也就是O(n) 在乘以最外层for的n次.
所以得出结论 2层嵌套循环的时间复杂度 = O(1) * n*n = O(n2)
在分析嵌套循环复杂度的时候必将内层循环和外层虚幻都考虑进来
四,方法调用的复杂度分析
假如有如下代码
for(int count = 0; count < n; count++){
printsum(n);
}
循环的阶次等于循环体的阶次乘以循环的次数.像这种情况循环体里头是一个方法的调用,那么这个循环体的时间复杂度如何呢!
这个方法就是打印1~n的和.所以必须先计算方法体的的时间复杂度.
public void printsum(int count){
int sum = 1;
for(int i= 0; i sum += i;
}
System.out.print(sum);
}
记住,只有可运行的语句才会增加时间复杂度,因此,上面方法里的内容除了循环之外,其余的可运行语句的复杂度都是O(1),
所以printsum的时间复杂度 = for的 O(n)+O(1) = 忽略常量 = O(n)
但是回想一下,我们让程序打印1~n的和不需要用for循环 记得初中数学课上老师就给出了个公式 num = n*(n+1)/2
改
public void printsum(int count){
int sum = 1;
sum = count * (count+1)/2;
System.out.print(sum);
}
此时的 printsum 方法的阶次就是O(1) -------->意味着最外层调用此方法的循环复杂度就从 O(n2) 改良为 O(n)
这是一个很大的提高.从这点就可以看出简单算法和高效算法之间的差别了.
五如果一个方法体是由多个方法调用and多个循环组成的,那么其复杂度又如何!
public void suixiangMethod(int n){
printsum(n);//1.1
for(int i= 0; i printsum(n);
}
for(int i= 0; i for(int k=0; k
System.out.print(i,k);
}
}
suixiangMethod 方法的时间复杂度需要计算方法体的各个成员的复杂度?
也就是1.1+1.2+1.3 = O(1)+O(n)+O(n2) ----> 忽略常数 和 非主要项 == O(n2)
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/运维做开发/article/detail/1013962
推荐阅读
article
【
mysql
】 The
last
packet
sent
successfully
to
the
s...
com.
mysql
.cj.jdbc.exceptions.CommunicationsException: The la...
赞
踩
article
kali
linux
pip
安装
docker
-
compose
报错_
kali
2023
pip
ins...
网上各种解决办法都试过了。_
kali
2023
pip
install
docker
-
compose
出错
pyyal
k...
赞
踩
article
上海交大
计算机
复试
机试
,交大
机试
面试
第一帖之10版-以及
复试
准备...
----------------------------------------------09版:http://www...
赞
踩
article
主流
Golang
框架
对比以及
介绍
...
golang一些基本开发
框架
介绍
以及对比_golang
框架
golang
框架
一.Gin框...
赞
踩
article
应急
电源
车:车载
UPS
系统
如何进行
数据
采集远程监控_ups接口获取
数据
...
UPS
应急
电源
车是一种搭载
UPS
系统
的特种车辆,能够为特殊场合提供稳定、可靠、不间断
电源
,一般由专用底盘、
UPS
电源
、控...
赞
踩
article
模型实战(17)之
C++
-
tensorRT
部署
yolov8
seg实例分割_
yolov8
实例分割...
本文介绍了如何使用
C++
和TensorRT部署
yolov8
seg模型,包括Python环境下的调用、
C++
环境下的模型转...
赞
踩
article
Java
项目
硅谷课堂学习笔记-P4
前端
基础
知识
2_
前端
p4
知识
图谱...
Java
项目
硅谷课堂学习笔记-P4
前端
基础
知识
2_
前端
p4
知识
图谱
前端
p4
知识
图谱 ...
赞
踩
article
数说CS |
夏令营
只针对外校
,
拟
录取人数
持续增长
!保研
上交
电院
难度有所降低?_
上交
电院
优营率
...
在第四轮学科评估中
,
上海交通大学的控制科学与工程、计算机科学与技术、电子科学与技术、信息与通信工程、仪器科学与技术、网络...
赞
踩
article
回溯
算法
及
解题
模板
_
回溯
算法
的
解题
模板
...
文章目录1. 什么是
回溯
算法
?2.
回溯
算法
的框架3. 针对不同题型的
解题
模板
1.所给数组中的元素互不相同,结果包含所有...
赞
踩
article
python
tcp_
client
_
socket
发送
bytes
...
python
相关学习资料:https://edu.51cto.com/video/4102.htmlhttps://ed...
赞
踩
article
循序渐进
,
搞懂什么是
贪心
算法
...
详解
贪心
算法
_
贪心
算法
贪心
算法
循序渐进
,
搞懂什么是
贪心
...
赞
踩
article
【
STM32
.Net MF
开发
板学习-17】
Wifi
遥控智能
小车
_遥控
小车
wifi
电控板
开发
...
恰好以前购买的一个PDA含
Wifi
功能,所以与其用PC通过Zigbee控制智能
小车
,不如用PDA来控制,这样更为方便,不...
赞
踩
article
如何解决The
last
packet
successfully
received
from
the
...
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExc...
赞
踩
article
阿里云
Dataworks
_
odps
到
drds
离线
同步
...
Dataworks
介绍
Dataworks
是阿里云数据工厂是阿里云重要的产品,主要提供:数据集成、数据开发、数据地图、数据...
赞
踩
article
MySQL
数据库
管理
_
mysql
创建与
管理
数据库
...
在
MySQL
中,
数据库
管理
是非常基础但又至关重要的技能。无论是创建新的
数据库
、选择当前使用的
数据库
,还是查看
数据库
的...
赞
踩
article
LLM
赋能的
研发
效能
:
如何
探索
软件开发
新工序?...
上周末,我们(我和我的同事谢保龙)在 QCon 广州 2023 上分享了一个 AI 结合
研发
效能
的话题:《
探索
软件开发
新...
赞
踩
article
20
21年
第十二届
蓝桥杯
python
组省赛
_在平面
直角坐标
系中构建
20
个点(训练集)
,
且分为
y1
和
y...
这篇博客介绍了
20
21年
第十二届
蓝桥杯Python
组省赛
的部分题目,包括填空题
和
编程大题的详细解析。涉及的算法包括贪心算...
赞
踩
article
GPU
推理
服务
性能
优化
之路 | 得物技术_
推理
算力
服务
...
本文介绍了如何通过Python的CPU与
GPU
进程分离及使用TensorRT对模型进行
优化
,提升线上
推理
服务
的QPS,减...
赞
踩
article
低
代码
平台前端的
设计
与
实现
(二)构建引擎
BuildEngine
切面
处理
设计
_低
代码
平台根据
切面
来
实现
...
本文探讨低
代码
平台的构建引擎
BuildEngine
在前端
设计
中的应用,特别是
切面
处理
设计
,包括组件构建
切面
和元素节点解析...
赞
踩
article
【
Arduino
】
蓝牙
模块
HC-
05
_
arduino
hc
05
...
Arduino
+HC-
05
蓝牙
模块
,
蓝牙
通信测试,两个
蓝牙
模块
通信配置。_
arduino
hc
05
arduino
hc0...
赞
踩
相关标签
mysql
数据库
java
linux
docker
pip
上海交大计算机复试机试
golang
gin
beego
go-zero
echo
go-micro
网络
自动化
服务器
工业智能网关
c++
YOLO
计算机视觉
人工智能
opencv
前端
学习
计算机保研