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

embedded/2025/1/24 19:31:29/

**时间复杂度**

一、概念理解

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

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

  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/embedded/156642.html

相关文章

【探索 Kali Linux】渗透测试与网络安全的终极操作系统

探索 Kali Linux&#xff1a;渗透测试与网络安全的终极操作系统 在网络安全领域&#xff0c;Kali Linux 无疑是最受欢迎的操作系统之一。无论是专业的渗透测试人员、安全研究人员&#xff0c;还是对网络安全感兴趣的初学者&#xff0c;Kali Linux 都提供了强大的工具和灵活的环…

计算机视觉算法实战——无人机检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​ 1. 引言✨✨ 随着无人机技术的快速发展&#xff0c;无人机在农业、物流、监控等领域的应用越来越广泛。然而&#xff0c;无人机的滥用也带…

力扣面试150 长度最小的子数组 滑动窗口

Problem: 209. 长度最小的子数组 参考题解 滑动窗口 class Solution {public int minSubArrayLen(int target, int[] nums) {int n nums.length;int ans n 1;int sum 0; // 子数组元素和int left 0; // 子数组左端点for (int right 0; right < n; right) { // 枚举…

Vue-Day1

Vue 1.Vue入门 Vue的使用步骤&#xff1a; 准备工作 引入vue模块 创建vue的应用实例 定义元素&#xff08;div&#xff09;&#xff0c;交给vue控制 <body><div id"app"></div><!-- 引入vue模块 --><script type"module"&…

【AI编程】记录一下windsurf中Write模式和Chat模式的区别以及 AI Rules的配置方法

摘要 以学习和记录为目的&#xff0c;围绕windsurf这款AI编程工具展开。在使用过程中产生疑惑&#xff0c;通过查阅官方文档资料分享了Write模式和Chat模式的区别&#xff0c;以及Global AI Rules和Workspace AI Rules的作用与配置&#xff0c;最后分享个人配置规则的体验&…

根据条件更改el-tree的字体颜色

html :render-content"renderContent" 树节点的内容区的渲染 Function <el-tree ref"treeRef" :data"props.data" show-checkbox default-expand-all node-key"label":check-strictly"checkStrictly" :props"d…

IDEA社区版(免费版)创建spring boot项目

1、社区版(免费版)安装spring插件 2、创建spring boot项目

一文了解二叉树的基本概念

文章目录 二叉树1二叉树的定义及其主要特征1.1二叉树的定义1.2二叉树的特点1.3二叉树的五种形态1.4二叉树与度为2的有序树的区别1.5几个特殊的二叉树1.6二叉树的性质 2二叉树的存储结构2.1二叉树的顺序存储2.2二叉树的链式存储 二叉树 1二叉树的定义及其主要特征 1.1二叉树的定…