搜索
查看
编辑修改
首页
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
java多线程之——停止线程多种方式_java 多线程报错停止所有线程
2
VS Code 运行C/C++ 程序_vccode 复制代码后提示卡住,显示正在加载
3
git克隆报错问题 Could not read from remote repository. Please make sure you have the correct access right_git clone remote message can not reday
4
ATOM、DiMP目标跟踪详细代码记录:测试_目标跟踪atom代码复现
5
【C++/STL】:哈希的应用 -- 位图&布隆过滤器
6
【程序员讲婚庆】找婚庆公司的渠道和问的内容
7
CISSP证书考试难度大吗?本文教你如何轻松拿下CISSP_cissp证书难考吗
8
DIMP:Learning Discriminative Model Prediction for Tracking 学习判别模型预测的跟踪
9
Day1-初识SQL(DataWhale)_sql material code
10
2024华为OD机试真题-学生重新排队-(C++/Java/Python)-C卷D卷-200分_n个学生排成一排,学生编号分别是1到n,n为3的整倍数。老师随机抽签决定将所有学生
当前位置:
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
[
JMeter
]Beanshell解析
Json
格式的接口响应数据_
jmeter
beanshell
...
jmeter
beanshell
处理
Json
响应数据_
jmeter
beanshell
json
加工数据
jmeter
b...
赞
踩
article
常见
信号
滤波
方法(
卡尔曼
滤波
、
滑动
平均
、
异常
值
剔除
)的原理解析与C语言实现_
滑动
平均
滤波
...
卡尔曼
滤波
、
滑动
平均
和
异常
值
剔除
是
信号
处理和数据分析中常用的
滤波
和平滑技术。这些方法旨在从测量或采集的数据中提取有价值的...
赞
踩
article
计算机
专业
如何到大学当
教授
,
高校
非升
即
走本质还是内卷
,
在
哪些
专业
当
教授
没失业压力?......
因为一件发生
在
知名
高校
耸人听闻的社会事件
,
高校
“
非升
即
走”这种制度进入了公众的眼帘。“
非升
即
走”这种制度对于
高校
的利益是...
赞
踩
article
内容
审核
:用
python
实现
内容
鉴黄
_
python
鉴黄
...
背景随着网络监管越来越严格,UGC网站都需要针对用户生产的
内容
,进行
审核
。目前大家一般是机器和人工
审核
的双重过滤。针对...
赞
踩
article
百万级
高
并发
mongodb
集群
性能
数十倍提升
优化
实践(上篇)_
mongodb
serviceexec...
本文介绍了在面临百万级
高
并发
MongoDB集群
性能
瓶颈时,如何通过业务层面
优化
、MongoDB配置调整和服务层的存储引擎...
赞
踩
article
neo4j
使用
详解(十八、
java
driver
使用
及
性能
优化
<高级用法>——最全参考)_
neo4j
...
neo4j
的
java
driver
简单
使用
及
性能
优化
讲解。_
neo4j
-
java
-
driver
neo4j
-
java
-dr...
赞
踩
article
阿里
深度
学习实践_
马泽君
阿里
巴巴
...
from: http://www.csdn.net/article/2015-10-22/2826008?ref=myr...
赞
踩
article
【AI学习笔记】
TensorFlow
版本
对应
(参考表)和
Torch
/
Torch
vision
版本
对...
Python 分别与
TensorFlow
和
Torch
/
Torch
vision 的
版本
对应
(参考表)_
torch
和...
赞
踩
article
探秘
Open
PDF
:一款
强大
的
Java
PDF
库...
探秘
Open
PDF
:一款
强大
的
Java
PDF
库项目地址:https://gitcode.com/Libre
PDF
/Op...
赞
踩
article
neo4j
FORACH 函数_
neo4j
foreach
...
子句可用于更新数据,例如对路径中的元素或通过聚合创建的列表执行更新命令。在
foreach
语句之外使用它,除非您匹配找...
赞
踩
article
电脑
雕刻
教程
_
电脑
软件
目录...
点击上面“蓝字”关注,获取更多资源!用心分享 一黑一白我不是灵魂导师一个分享软件/影视/音乐/网站/
教程
的公众号星标/置...
赞
踩
article
AI
绘画
:
艺术
与科技融合
的
新篇章_2023-2028年中国
ai
绘画
行业
市场
前瞻与
未来
投资战略分析报告...
随着人工智能(
AI
)技术
的
飞速发展,
AI
绘画
作为一种新兴
的
艺术
形式,正逐步改变着传统
艺术
创作
的
格局。从早期
的
简单模仿到如...
赞
踩
article
变革
Perplexica
:
AI
驱动的问答
搜索引擎
...
如果您将Ollama安装在端口11434上,请使用http://host.docker.internal:11434。如...
赞
踩
article
滤波
算法对比_
move
average
filter
...
滤波
(Wave
filter
ing)是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。
滤波
算法的目的是从...
赞
踩
article
2024最新
Navicat
Premium
17.0
.12
简体中文版
破解
激活
永久使用(保姆级教程)...
2024最新
Navicat
Premium
17.0
.12
简体中文版
破解
激活
永久使用(保姆级教程)_
navicat17
...
赞
踩
article
OpenWrt
网络
配置
详解_
openwrt
配置
...
本文介绍了
OpenWrt
的强大功能,重点讲解了网络接口
配置
、动态与静态IP设置、查看和修改网络
配置
的方法,包括ifcon...
赞
踩
article
Yarn
包
管理工具
的
安装
与
使用
教程...
本文详细介绍了如何在Windows、macOS和Linux上
安装
Yarn
,并展示了如何
使用
它进行项目依赖管理,包括初始化...
赞
踩
article
【
AGC
】
鸿蒙
证书
管理
问题
详解_
鸿蒙
开发 怎么
使用
团队
证书
...
本文详细解析了
鸿蒙
应用在
AGC
平台的
证书
管理
问题
,包括
证书
数量限制、删除
证书
的影响以及不同产品如何共用
证书
。删除发布
证书
...
赞
踩
article
【雕爷学编程】
Arduino
手册之
智能家居
的
中心
控制
与
集中管理
_
arduino
怎么整理电路...
在loop()函数中,通过读取传感器接口
的
值来检测光线强度,根据光线强度来
控制
马达
的
正反转,从而
控制
窗帘
的
打开和关闭。通...
赞
踩
article
Python
实现
TCP
客户端
和
服务器
(多线程)_
pythontcp
服务器
设置
守护...
Python
中socket 类(
客户端
)的介绍导入 socket 模块import socket创建
客户端
socket ...
赞
踩
相关标签
json
c语言
信号滤波
卡尔曼滤波
滑动平均滤波
异常值剔除滤波
计算机专业如何到大学当教授
python
人工智能
自然语言处理
机器学习
Java
高并发
高可用
分布式
架构
neo4j
java
性能优化
学习
tensorflow
电脑雕刻教程
AI作画
科技