时间复杂度的计算分类汇总

        比较官方的关于时间复杂度的计算我们给出的解释是这样的:要计算时间复杂度等价于计算基本语句执行次数的最高次幂,并把系数去掉。一般算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。而内层循环执行的顺序要遵循 for 循环的执行顺序,外层循环执行一次,内层循环要执行全部次。

     但是我们实际上可以通俗一点说,要计算时间复杂度或者是最内层语句的执行次数,也就是找循环次数(我们设为t)和给定终止条件的关系,列出等式计算即可。

   一般来说它有三种类型题,单层循环、双层循环和三层及以上的。

   我们先来分析单层循环,解题过程如下:

1、分别列出循环次数t和变量(可为x或i或sum等等); 

 2、用while或for循环里的循环终止条件(<号等直接变=即可,毕竟我们算的是值)取                         最高次幂,不要系数就是要求时间复杂度

单层循环的几道简单例题:

eg.1

i=1;

wile(i<=n)

   i=i*2;

循环次数t0123...t
变量i1248...2^t

很明显此时i=2^t且令其等于n时,解得t=log以2为底n的对数

eg2.

i=0;

while(i*i*i<=n)

    i++;

循环次数t0123...t
变量i0123...t

很明显此时i=t,则t^3=n时,循环次数t也就是时间复杂度为O(三次根号下n)

 eg.4

i=0,sum=0;

while(sum<n)

   sum+=++i;

循环次数t0123...t
变量i0123...t
sum0136...0+1+2+3+...t

这道题是找sum和t关系,但是i和sum也有关系。

sum=0+1+2+3+...t=t(t+1)/2 只关注最高数量级t^2即可,令t^2=n,则时间复杂度为O(开平方n)

 eg.5

sum=1;

for(i=0;sum<n;i++)

    sum+=1;

 

循环次数 t0123...t
变量sum1234...t+1

 很明显sum=t+1,令其=n,时间复杂度为O(n)


               

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网云组态是什么?部署物联网云组态有什么作用?

在信息化与工业化的深度融合进程中&#xff0c;物联网云组态以其独特的优势&#xff0c;正在成为企业数字化转型的重要工具。那么&#xff0c;物联网云组态究竟是什么呢&#xff1f;部署物联网云组态又能给企业带来哪些实质性的好处呢&#xff1f;今天&#xff0c;我们将围绕这…

vue 消息左右滚动(前后无缝衔接)

之前一直用vue-seamless-scroll&#xff0c;无奈此组件有两个缺点不满足实际效果&#xff1a;1&#xff09;标题过长被截取、2&#xff09;标题果断也会滚动&#xff0c;无奈我自己封装一个&#xff0c;满足此两个弊端&#xff0c;也能达到vue-seamless-scroll组件的功能&#…

Android 生成Excel文件保存到本地

本文用来记录在安卓中生成Excel文件并保存到本地操作&#xff0c;在网上找了好久&#xff0c;终于找到一个可以用的&#xff0c;虽然代码已经很老的&#xff0c;但亲测可用&#xff01; 项目地址&#xff1a;https://github.com/wanganan/AndroidExcel 可以下载下来修改直接用…

AI:Nvidia官网人工智能大模型工具合集(文本生成/图像生成/视频生成)的简介、使用方法、案例应用之详细攻略

AI&#xff1a;Nvidia官网人工智能大模型工具合集(文本生成/图像生成/视频生成)的简介、使用方法、案例应用之详细攻略 目录 Nvidia官网人工智能大模型工具合集的简介 1、网站主要功能包括: Nvidia官网人工智能大模型工具合集的使用方法 1、SDXL-Turbo的使用 2、GEMMA-7B的…

详解 net user

net user 是 Windows 操作系统自带的一个命令行工具&#xff0c;用于管理和查询本地用户账户信息。在域环境中&#xff0c;它可以用于管理本地用户账户&#xff0c;但对域用户账户的操作能力有限&#xff0c;尤其是查看域账户锁定状态等功能。以下是 net user 命令的详解&#…

【学习】Web安全测试需要考虑哪些情形

一、数据加密 某些数据需要进行信息加密和过滤后才能在客户端和服务器之间进行传输&#xff0c;包括用户登录密码、信用卡信息等。例如&#xff0c;在登录某银行网站时&#xff0c;该网站必须支持SSL协议&#xff0c;通过浏览器访问该网站时&#xff0c;地址栏的http变成https…

中国中药有限公司邀您到场参观2024燕窝滋补品展

参展企业介绍 中国中药有限公司是中国医药集团有限公司&#xff08;简称“国药集团”&#xff09;的全资子公司&#xff0c;是国药集团中药产业板块的核心投资平台&#xff0c;也是中药一类新药、中药科技进步一等奖、中药保密品种——“人工麝香”全国总代理。 公司经营范围…

Python装饰器深度解析:提升代码效率与可读性的实战指南

Python装饰器深度解析&#xff1a;提升代码效率与可读性的实战指南 摘要装饰器简介定义及基本用途装饰器在Python中的角色 装饰器的工作原理Python函数的运行时特性首个装饰器示例&#xff1a;简单函数计时装饰器的执行流程解析 使用装饰器增强函数功能编写可重用的日志记录装饰…

2024可以搜索夸克网盘的方法

截止2024可以搜索夸克网盘的方法 6miu盘搜 6miu盘搜是一个强大的网盘搜索工具,它汇集了多个网盘平台的资源,包括百度网盘、163网盘、金山快盘等,可以帮助用户快速找到所需的资料。6miu盘搜的一个显著特点是它的资源更新速度快,可以搜索到最新的资源。此外,6miu盘搜的界面清爽…

AI论文速读 | 具有时间动态的路网语义增强表示学习

论文标题&#xff1a; Semantic-Enhanced Representation Learning for Road Networks with Temporal Dynamics 作者&#xff1a; Yile Chen&#xff08;陈亦乐&#xff09; ; Xiucheng Li&#xff08;李修成&#xff09;; Gao Cong&#xff08;丛高&#xff09; ; Zhifeng Ba…

web前端性能优化【多年工作经验总结,一举拿下】

浏览器方面&#xff1a; 减少HTTP请求 HTTP 请求是指客户端&#xff08;例如浏览器&#xff09;向服务器发出的请求消息&#xff0c;用于获取特定资源或执行特定操作 为什么能够优化性能&#xff1f; 减少网络延迟&#xff1a;每次发起HTTP请求都需要经过网络传输&#xff…

掌控未来,运维无界——IT设备一网统管的智能监控运维时代

在当今这个信息化、智能化的时代&#xff0c;企业对于IT设备的依赖程度日益加深。确保这些设备的稳定运行&#xff0c;对于企业的正常运营至关重要。为此&#xff0c;一网统管的智能监控运维系统应运而生&#xff0c;它以其全面、精准的设备监控和数据分析能力&#xff0c;为企…

openlayers 入门教程(五):sources 篇

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

利用云手机技术,开拓海外社交市场

近年来&#xff0c;随着科技的不断进步&#xff0c;云手机技术逐渐在海外社交营销领域崭露头角。其灵活性、成本效益和全球性特征使其成为海外社交营销的利器。那么&#xff0c;究竟云手机在海外社交营销中扮演了怎样的角色呢&#xff1f; 首先&#xff0c;云手机技术能够消除地…

UE4 根据任意多个点,生成最近的线条

1.计算所有线条的组合 2.Clear0宏&#xff1a;清除掉数组Distance0的值。注意这里是设置成最大值&#xff0c;而不是使用Clear&#xff01; 3.清除掉数组中的最小值&#xff0c;避免重复生成相同长度的线条。注意这里是设置成最大值&#xff0c;而不是使用Clear&#xff01; …

C++笔记之memmove函数(可重叠)

C++笔记之memmove函数(可重叠) —— 杭州 2024-03-25 夜 code review! 文章目录 C++笔记之memmove函数(可重叠)1.《C/C++函数与算法速查宝典》:memmove 函数─拷贝n 个字节到数组中(可重叠)2.代码示例3.对比memcpy4.源和目标内存区域重叠时,memcpy的表现5.《C语言程序设计…

接口关联和requests库

一、接口关联 postman的接口 postman的接口关联配置&#xff1a;js代码&#xff0c;重点在于思路。 // 定义jsonData这个变量 接受登录接口的返回结果 var jsonData JSON.parse(responseBody); // 从返回结果里提取token/id值&#xff0c;并赋值给token/id变量值作为环境变…

如何添加随机种子保证代码每次复现的一致性?

如何添加随机种子保证代码每次复现的一致性&#xff1f; 在main()程序中首先设定随机种子&#xff1a; def set_seed(seed42):os.environ[PYTHONHASHSEED] str(seed)random.seed(seed)np.random.seed(seed)torch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.backends…

深入了解Flutter中StreamController的属性、方法及多种场景使用示例

在Flutter应用程序中&#xff0c;StreamController是一个非常有用的工具&#xff0c;用于管理数据流。它提供了丰富的属性和方法&#xff0c;可以让我们更加灵活地创建、操作和监听数据流。在本文中&#xff0c;我们将深入探讨StreamController的属性、方法&#xff0c;并提供多…

Spark基于DPU Snappy压缩算法的异构加速方案

一、总体介绍 1.1 背景介绍 Apache Spark是专为大规模数据计算而设计的快速通用的计算引擎&#xff0c;是一种与 Hadoop 相似的开源集群计算环境&#xff0c;但是两者之间还存在一些不同之处&#xff0c;这些不同之处使 Spark 在某些工作负载方面表现得更加优越。换句话说&am…