【数据结构】1-3 算法的时间复杂度

数据结构知识点合集:数据结构与算法

• 知识点

在这里插入图片描述

• 时间复杂度的定义

1、算法时间复杂度

  事前预估算法时间开销T(n)与问题规模 n 的关系(T 表示 “time”)

2、语句频度

  算法中语句的执行次数

在这里插入图片描述

  对于以上算法,语句频度:

    ① ——1次 ② ——3001次 ③④ ——3000次 ⑤ ——1次

    T(3000) = 1 + 3001 + 2*3000 + 1

  时间开销与问题规模 n 的关系:

    T(n)=3n+3

  大O记号表示算法的一种渐近时间复杂度;大O表示“同阶”,同等数量级。即:当 n->∞时,二者之比为常数

在这里插入图片描述

  结论1:可以只考虑阶数高的部分

  结论2:问题规模足够大时,常数项系数也可以忽略

• 时间复杂度的计算规则

1、加法规则

T(n) = T1(n) + T2(n) = O(f(n)) + O(g(n)) = O(max(f(n), g(n)))

  多项相加,只保留最高阶的项,且系数变为1

2、乘法规则

T(n) = T1(n)×T2(n) = O(f(n))×O(g(n)) = O(f(n)×g(n))

  多项相乘,都保留

3、常见时间复杂度的比较

O(1) < O(log2n) < O(n) < O(nlog2n) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

  常<对<幂<指<阶

4、顺序执行的代码只会影响常数项,可以忽略

5、只需挑循环中的一个基本操作分析它的执行次数与 n 的关系即可

6、如果有多层嵌套循环,只需关注最深层循环循环了几次

例:计算以下算法的时间复杂度 T(n):

在这里插入图片描述

  设最深层循环的语句频度(总共循环的次数)为 x,则由循环条件可知,循环结束时刚好满足 2^x > n

  x = log_2(n) + 1

  T(n) = O(x) = O(log_(2)n)

• 三种常用的时间复杂度

最坏时间复杂度:最坏情况下算法的时间复杂度

平均时间复杂度:所有输入示例等概率出现的情况下,算法的期望运行时间

最好时间复杂度:最好情况下算法的时间复杂度

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

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

相关文章

【Python 算法零基础 3.递推】

压抑与痛苦&#xff0c;那些辗转反侧的夜&#xff0c;终会让我们更加强大 —— 25.5.16 一、递推的概念 递推 —— 递推最通俗的理解就是数列&#xff0c;递推和数列的关系就好比 算法 和 数据结构 的关系&#xff0c;数列有点像数据结构中的线性表(可以是顺序表&#xff0c;也…

淘宝扭蛋机系统开发前景分析:解锁电商娱乐化新蓝海

在电商行业竞争日益白热化的当下&#xff0c;如何通过创新玩法提升用户粘性、激活消费潜力&#xff0c;成为平台突破增长瓶颈的关键。淘宝扭蛋机系统作为“电商娱乐”的跨界融合产物&#xff0c;正凭借其趣味性、随机性和社交属性&#xff0c;成为撬动年轻消费市场的潜力工具。…

NHANES指标推荐:UHR

文章题目&#xff1a;Elevated log uric acid-to-high-density lipoprotein cholesterol ratio (UHR) as a predictor of increased female infertility risk: insights from the NHANES 2013-2020 DOI&#xff1a;10.1186/s12944-025-02521-w 中文标题&#xff1a;对数尿酸与高…

【c库主要功能】

1 stdio.h 功能&#xff1a;处理文件和标准输入/输出流的各种函数和类型 包含变量&#xff1a; size_t&#xff1a;无符号整形&#xff0c;sizeof关键字的结果FILE&#xff1a;文件流类型&#xff0c;适合存储文件流信息的对象类型 库宏&#xff1a; stderr、stdin、stdout&a…

npm 报错 gyp verb `which` failed Error: not found: python2 解决方案

一、背景 npm 安装依赖报如下错&#xff1a; gyp verb check python checking for Python executable "python2" in the PATH gyp verb which failed Error: not found: python2 一眼看过去都觉得是Python环境问题&#xff0c;其实并不是你python环境问题&#xf…

常见的请求头(Request Header)参数

1. Accept 作用&#xff1a;告知服务器客户端支持的响应数据格式&#xff08;如 JSON、XML、HTML&#xff09;。示例&#xff1a;Accept: application/json&#xff08;优先接收 JSON 格式数据&#xff09;。 2. Content-Type 作用&#xff1a;说明请求体的数据格式&#xff08…

计算机网络:移动通信蜂窝网络指的是什么?

无线基站的蜂窝网络(Cellular Network)是现代移动通信系统的核心架构,其核心思想是通过蜂窝状小区划分和频率复用,实现广域覆盖、高效频谱利用和动态资源管理。以下从设计原理、网络架构、关键技术及实际挑战等方面深入解析蜂窝网络。 一、蜂窝网络的设计原理 1. 蜂窝结构…

【AI论文】对抗性后期训练快速文本到音频生成

摘要&#xff1a;文本到音频系统虽然性能不断提高&#xff0c;但在推理时速度很慢&#xff0c;因此对于许多创意应用来说&#xff0c;它们的延迟是不切实际的。 我们提出了对抗相对对比&#xff08;ARC&#xff09;后训练&#xff0c;这是第一个不基于蒸馏的扩散/流模型的对抗加…

Word文档图片和图表自动添加序号

0 Preface/Foreword Word文档是办公常用的文档&#xff0c;里面经常会插入图片或者表格&#xff0c;当表格和图片数量过多时&#xff0c;如果有些图片需要删除或者添加&#xff0c;那么大概率需要修改大量图片的序号或者引用记录&#xff0c;如果通过手工一个一个修改&#xf…

软件架构设计--期末复习

质量属性 参考视频&#xff1a;【13.5质量属性-架构评估】 在软件架构中&#xff0c;质量属性是衡量系统设计优劣的关键指标&#xff0c;通常分为运行时属性和非运行时属性。以下是一些常见的质量属性&#xff1a; 一、软件架构中的质量属性 运行时属性&#xff1a; 性能&am…

多指标组合策略思路

一种基于多种技术指标和日历因素的综合交易策略&#xff0c;旨在通过复杂的条件判断来预测市场的短期走势&#xff0c;并据此进行买卖操作。 策略概述 该策略的核心思想是通过结合多个技术指标和日历因素来判断市场的短期趋势&#xff0c;并在合适的时机进行买入或卖出操作。 具…

STM32 HAL驱动程序 内部Flash

hal_flash.c #include "hal_flash.h"volatile uint32_t flashWriteOffset SYS_APP_BAK_SAVE_ADDR_BASE; volatile uint32_t flashReadOffset SYS_APP_BAK_SAVE_ADDR_BASE;/* MCU OTA */ /*擦除指定的Flash页*/ void flash_erase_page(uint8_t flashPage , uint32_…

电子电路:什么是电流离散性特征?

关于电荷的量子化,即电荷的最小单位是电子的电荷量e。在宏观电路中,由于电子数量极大,电流看起来是连续的。但在微观层面,比如纳米器件或单电子晶体管中,单个电子的移动就会引起可观测的离散电流。 还要提到散粒噪声,这是电流离散性的表现之一。当电流非常小时,例如在二…

AI agent与lang chain的学习笔记 (1)

文章目录 智能体的4大要素一些上手的例子与思考。创建简单的AI agent.从本地读取文件&#xff0c;然后让AI智能体总结。 也可以自己定义一些工具 来完成一些特定的任务。我们可以使用智能体总结一个视频。用户可以随意问关于视频的问题。 智能体的4大要素 AI 智能体有以下几个…

react+html2canvas+jspdf将页面导出pdf

主要使用html2canvasjspdf 1.将前端页面导出为pdf 2.处理导出后图表的截断问题 export default function AIReport() {const handleExport async () > {try {// 需要导出的内容idconst element document.querySelector(#AI-REPORT-CONTAINER);if (!element) {message.err…

FFmpeg:多媒体处理的终极利器

FFmpeg详细介绍 1. 定义与基本概述 FFmpeg是一套开源的跨平台多媒体处理工具集,最初由法国程序员Fabrice Bellard于2000年开发,其名称源自“Fast Forward MPEG”,体现了其高效处理MPEG格式的能力。它不仅是命令行工具,还包含多个库和开发套件,支持视频转码、剪辑、合并、…

【应用开发十】pwm

1 应用层操作PWM 与LED设备一样&#xff0c;操作PWD也是通过sysfs方式 1&#xff09; 所在目录&#xff1a;/sys/class/pwm&#xff0c;该目录下的文件为pwmchipX&#xff0c;为PWM控器&#xff0c;I.MX6ULL有八个pwm控制器 1.1 pwm 控制器 PWM控制器里内容&#xff08;即pw…

LeetCode算 法 实 战 - - - 双 指 针 与 移 除 元 素、快 慢 指 针 与 删 除 有 序 数 组 中 的 重 复 项

LeetCode算 法 实 战 - - - 双 指 针 与 移 除 元 素、快 慢 指 针 与 删 除 有 序 数 组 中 的 重 复 项 第 一 题 - - - 移 除 元 素方 法 一 - - - 双 重 循 环方 法 二 - - - 双 指 针方 法 三 - - - 相 向 双 指 针&#xff08;面 对 面 移 动&#xff09; 第 二 题 - - -…

设计模式系列(03):设计原则(二):DIP、ISP、LoD

本文为设计模式系列第3篇,聚焦依赖倒置、接口隔离、迪米特法则三大设计原则,系统梳理定义、实际业务场景、优缺点、最佳实践与常见误区,适合系统学习与团队协作。 目录 1. 引言2. 依赖倒置原则(DIP)3. 接口隔离原则(ISP)4. 迪米特法则(LoD)5. 常见误区与反例6. 最佳实…

计算机图形学中MVP变换的理论推导

计算机图形学中MVP变换的理论推导 课程地址&#xff1a;Computing the Pixel Coordinates of a 3D Point 知识铺垫&#xff1a;矩阵的真实内涵 矩阵的每一列/行&#xff08;左乘和右乘的区别&#xff09;代表了新坐标系的基向量在原基向量构成的坐标系中的坐标&#xff0c;这…