蓝桥杯算法|基础笔记(1)

server/2025/1/22 19:45:10/

**时间复杂度**

一、概念理解

时间复杂度是用来衡量算法运行时间随输入规模增长而增长的量级。它主要关注的是当输入规模趋向于无穷大时算法执行基本操作的次数的增长趋势,而不是精确的运行时间。

二、分析代码中的基本操作

  1. 确定关键操作
    • 在一段代码中,首先要找出对整体运行时间影响最大的操作。例如,在一个循环中,如果循环体主要是进行简单的算术运算,那么这些算术运算就是基本操作。
    • 对于排序算法,比较元素大小和交换元素位置的操作通常是基本操作。例如在冒泡排序中,比较相邻元素大小并在必要时交换它们的操作是关键操作。
  2. 忽略常量因素
    • 时间复杂度关注的是操作次数的量级,而不是具体的常数。例如,一个算法执行了3n + 5次操作,当n趋向于无穷大时,常数5和系数3相对于n的增长来说影响较小,所以时间复杂度为O(n)。

三、根据代码结构分析

1、常数阶O(1)

没有循环等复杂结构,时间复杂度就都是O(1)。

2、线性阶O(n)

for(int i=0;i<n;i++){......}

3、对数阶O(logN)

int  i=1;while(i<n){i=i*2;}

此处总结:

假设循环x次,寻找x、n的等式关系,转化成“x=——”的形式,看n无穷时关键因素。

 2的x次方等于n,所以,x=log2^n,时间复杂度O(logn)

4、根号阶O(\sqrt{}n)

int i=1;
while(i*i<=n){
i++;
}

5、平方阶O(^{​{_{n}}^{2}}) :循环嵌套

四、不同数据结构对时间复杂度的影响

  1. 数组
    • 随机访问数组元素的时间复杂度为O(1),因为可以通过索引直接定位到元素。但是在数组中查找特定元素(如果没有排序)可能需要遍历整个数组,时间复杂度为O(n)。
  2. 链表
    • 访问链表中的第k个元素,时间复杂度为O(k),因为需要从头节点开始逐个遍历。在链表中查找特定元素也需要逐个节点遍历,平均时间复杂度为O(n)。
  3. 树结构(如二叉树)
    • 对于二叉树的遍历(如先序、中序、后序遍历),时间复杂度为O(n),因为每个节点都需要被访问一次,这里n是树中的节点数量。但是查找操作的时间复杂度取决于树的高度,如果是平衡二叉树,查找的时间复杂度为O(log n),如果是完全不平衡的二叉树(如链表形式的二叉树),查找的时间复杂度为O(n)。

五、范围反推复杂度

**枚举算法**

蓝桥325题​​​​​​

未完待续—》》》


http://www.ppmy.cn/server/160550.html

相关文章

opencv笔记2

图像灰度 彩色图像转化为灰度图像的过程是图像的灰度化处理。彩色图像中的每个像素的颜色由R&#xff0c;G&#xff0c;B三个分量决定&#xff0c;而每个分量中可取值0-255&#xff0c;这样一个像素点可以有256*256*256变化。而灰度图像是R&#xff0c;G&#xff0c;B三个分量…

机器学习10-解读CNN代码Pytorch版

机器学习10-解读CNN代码Pytorch版 我个人是Java程序员&#xff0c;关于Python代码的使用过程中的相关代码事项&#xff0c;在此进行记录 文章目录 机器学习10-解读CNN代码Pytorch版1-核心逻辑脉络2-参考网址3-解读CNN代码Pytorch版本1-MNIST数据集读取2-CNN网络的定义1-无注释版…

软考信安24~工控安全需求分析与安全保护工程

1、工控系统安全威胁与需求分析 1.1、工业控制系统概念及组成 工业控制系统是由各种控制组件、监测组件、数据处理与展示组件共同构成的对工业生产过程进行控制和监控的业务流程管控系统。工业控制系统通常简称工控系统(ICS) 。 工控系统通常分为离散制造类和过程控制类两大…

通过idea创建的springmvc工程需要的配置

在创建的spring mvc工程中&#xff0c;使用idea开发之前需要配置文件包括porm.xml、web.xml、springmvc.xml 1、porm.xml 工程以来的spring库&#xff0c;主要包括spring-aop、spring-web、spring-webmvc&#xff0c;示例配置如下&#xff1a; <project xmlns"http:/…

centos设置开机自启的几种方案(frp为例)

下面几种方式任选其一即可 创建自定义systemd服务实现 以frps为例 创建服务文件 vim /etc/systemd/system/frps.service 如果没有vim命令可以使用vi 也可以执行yum install vim 安装一下将该配置粘贴到frps.service中并根据实际情况修改保存 [Unit] DescriptionFRP Server …

探索国产多相流仿真技术应用,积鼎科技助力石油化工工程数字化交付

当前&#xff0c;石油化工行业正积极拥抱数字化转型&#xff0c;以技术创新驱动产业升级。近日&#xff0c;第二届“石油化工工程数字化交付研讨会暨炼油与化工设备选型技术交流会”在北京召开。本次研讨会汇聚了来自中国石油、中国石化、中国海油等众多行业巨头的领导与专家&a…

flask项目中使用schedule定时任务案例

pip install schedule代码 import schedule # 定义定时任务 schedule.every().day.at("22:00").do(update_data) schedule.every().day.at("22:00").do(update_cumulative_data)# 启动定时任务 def run_scheduler():while True:schedule.run_pending()tim…

简述mysql 主从复制原理及其工作过程,配置一主两从并验证

第一种基于binlog的主从同步 首先对主库进行配置&#xff1a; [rootopenEuler-1 ~]# vim /etc/my.cnf 启动服务 [rootopenEuler-1 ~]# systemctl enable --now mysqld 主库的配置 从库的配置 第一个从库 [rootopenEuler-1 ~]# vim /etc/my.cnf [rootopenEuler-1 ~]# sys…