当前位置: 首页 > article >正文

2026《数据结构》考研复习笔记四(绪论)

绪论

  • 前言
  • 时间复杂度分析

前言

由于先前笔者花费约一周时间将王道《数据结构》知识点大致过了一遍,圈画下来疑难知识点,有了大致的知识框架,现在的任务就是将知识点逐个理解透彻,并将leetcode刷题与课后刷题相结合。因此此后的过程中,整理的笔记不仅包含课本知识点,还包含经典课后题讲解(主要是笔者认为重要的)以及leetcode代码(用于深入理解重要知识点)。综上,复习思路为:大致过一遍知识点有个系统框架->写代码深入理解->刷题适应考试模式

经复习,我将本书大致分为四部分——第一章:绪论(主要是算法效率的度量),第二章+第三章+第四章:线性结构(包括数组、链表、栈、队列以及串),第五章+第六章:非线性结构(包括树、图),第七章+第八章:实际应用(包括顺序查找、树形查找、散列查找以及各种排序算法)。

本篇文章为第一部分,除了一些零散的概念性知识,只有一个较为重要的考点——时间复杂度分析。记住结论即可,有兴趣的同学可以自行推理(本来是想写一下的,但是太费时间了,而且估计看的人不多,所以自行推理吧)

时间复杂度分析

我们将循环分为两种类型——等差递增和等比递增(递减可以转化为递增)。常见形式如:

  • 等差递增:for(int i=0;i<n;i++)
  • 等比递增:for(int i=1;i<n;i*=2)

为了找出一般规律,我们接下来探究等差递增和等比递增的一般形式:

  • 等差递增:for(int i=a0;i<n;i+=d)。其中a0为首项,d为等差
  • 等比递增:for(int i=a0;i<n;i*=q)。其中a0为首项,q为等比

一、单层for循环

类型 时间复杂度
等差for(int i=a~0~;i< n;i+=d) O(n)
等比for(int i=a~0~;i< n;i*=q) O(logn)

推导过程:
(假设运行次数为t,即最后一次运行i=at
1.对于等差递增,有n-d<=at<n,即n-d<=a0+t * d<n,推导出(n-d-a0)/d<=t<(n-a0)/d,忽略常数,有时间复杂度为O(n)
2.对于等比递增,有n/q<=at<n,即n/q<=a0 * qt<n,推导出logq(n/(q * a0))<=t<logq(n/a0),经过换底公式后忽略常数,有时间复杂度为O(logn)

二、双层for循环
首先将双层for循环分为两种类型:

  • 上下变量无关:上层递增变量与下层递增变量没有直接关系。如:
    for(int i=0;i<n;i++)
    for(int j=0;j<m;j++)
  • 上下变量有关:下层递增变量依赖于上层递增变量。如:
    for(int i=0;i<n;i++)
    for(int j=0;j<i;j++)//j的初始值为i

    同时我们将递增类型分为两种类型:
  • 加法(等差递增):for(int i=a0;i<n;i+=d)。其中a0为首项,d为等差
  • 乘法(等比递增):for(int i=a0;i<n;i*=q)。其中a0为首项,q为等比

假设两层for循环的判断条件都是n(即i<n、j<n):

上下变量无关

第一层for循环 第二层for循环 时间复杂度
乘法 乘法 O(log2n)
乘法 加法 O(nlogn)
加法 乘法 O(nlogn)
加法 加法 O(n2)

上下变量有关

第一层for循环 第二层for循环 时间复杂度
乘法 乘法 O(log2n)
乘法 加法 O(n)
加法 乘法 O(nlogn)
加法 加法 O(n2)

仅有先乘后加的时候有区别,前者为O(nlogn)后者为O(n)——参见2022统考真题,其中便考察了这个知识点

注意:对于上下变量有关,第一层为加法,第二层为乘法的时候,最终的时间复杂度为O(logn!),根据斯特林公式,n!≈√(2nπ)(n/e)n,取对数后化简为nlogn

至于上下for循环参数不一致,在此也不再讨论(出题概率较低)

相关文章:

2026《数据结构》考研复习笔记四(绪论)

绪论 前言时间复杂度分析 前言 由于先前笔者花费约一周时间将王道《数据结构》知识点大致过了一遍&#xff0c;圈画下来疑难知识点&#xff0c;有了大致的知识框架&#xff0c;现在的任务就是将知识点逐个理解透彻&#xff0c;并将leetcode刷题与课后刷题相结合。因此此后的过…...

域名 → IP 的解析全过程

Question 使用 iOS 的网络库 (比如 AFNetwoking, URLSession, Alamofire) 进行请求时, 域名具体是怎样被解析为 IP 地址的 ? Answer 一次常见的 URLSession / AFNetworking / Alamofire 请求&#xff0c;域名 → IP 的解析全过程 拆成自顶向下 6 个环节, 如下 1 ► 应用层&…...

C++学习:六个月从基础到就业——STL算法(三)—— 数值算法(上)

C学习&#xff1a;六个月从基础到就业——STL算法&#xff08;三&#xff09;—— 数值算法(上) 本文是我C学习之旅系列的第二十七篇技术文章&#xff0c;也是第二阶段"C进阶特性"的第五篇&#xff0c;主要介绍C STL算法库中的数值算法(上部分)。查看完整系列目录了解…...

路由与路由器

路由的概念 路由是指在网络通讯中&#xff0c;从源设备到目标设备路径的选择过程。路由器是实现这一过程的关键设备&#xff0c;它通过转发数据包来实现网络的互联。路由工作在OSI参考模型的第三层&#xff0c;‘网络层’。 路由器的基本原理 路由器通过维护一张路由表来决定…...

5.学习笔记-SpringMVC(P61-P70)

SpringMVC-SSM整合-接口测试 (1)业务层接口使用junit接口做测试 (2)表现层用postman做接口测试 (3)事务处理— 1&#xff09;在SpringConfig.java&#xff0c;开启注解&#xff0c;是事务驱动 2&#xff09;配置事务管理器&#xff08;因为事务管理器是要配置数据源对象&…...

【专题刷题】二分查找(一):深度解刨二分思想和二分模板

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代码&#xff1b;&#xff08;2&#xff09;优质解法 优质代码&#xff1b;&#xff…...

硬核解析!电动汽车能耗预测与续驶里程的关键技术研究

引言 随着电动汽车的普及,续航里程和能耗表现成为用户关注的核心痛点。然而,表显续航与实际续航的差异、低温环境下的电量衰减等问题始终困扰着消费者。本文基于《电动汽车能耗预测与续驶里程研究》的实验成果,深入剖析电动汽车能耗预测的核心模型、多环境测试方法及续航里…...

【OceanBase相关】01-OceanBase数据库部署实践

文章目录 一、前言1、介绍说明2、部署方案二、部署说明1、环境准备2、软件安装2.1、安装OAT2.2、安装OCP3、软件部署三、集群管理1、MySQL租户管理四、Q&A1、OBServer 服务器重启后 observer 进程未能自动启动1.1、问题说明1.2、解决措施2、ERROR 1235 (0A000) at line 1: …...

【华为OD机试真题】428、连续字母长度 | 机试真题+思路参考+代码解析(E卷)(C++)

文章目录 一、题目题目描述输入输出样例1样例2 一、代码与思路&#x1f9e0;C语言思路✅C代码 一、题目 参考&#xff1a;https://sars2025.blog.csdn.net/article/details/139492358 题目描述 ◎ 给定一个字符串&#xff0c;只包含大写字母&#xff0c;求在包含同一字母的子串…...

C# 综合示例 库存管理系统4 classMod类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 在《库存管理系统》中使用classMod类来保存全局变量。 变量定义和含义,请详见下面的源代码: public class classMod { //数据库路径...

ZooKeeper配置优化秘籍:核心参数说明与性能优化

#作者&#xff1a;张桐瑞 文章目录 tickTime&#xff1a;Client-Server通信心跳时间initLimit&#xff1a;Leader-Follower初始通信时限syncLimit&#xff1a;Leader-Follower同步通信时限dataDir&#xff1a;数据文件目录clientPort&#xff1a;客户端连接端口服务器名称与地…...

详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别

详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别 下面我们详细拆解 Qt 中用于线程同步的两个核心类&#xff1a;QMutex 和 QMutexLocker。 &#x1f9f1; 一、什么是 QMutex&#xff1f; QMutex 是 Qt 中的互斥锁&#xff08;mutex&#xff09;类&#xff0c;用于防止多个…...

PCB 过孔铜厚的深入指南

***前言&#xff1a;在上一期的文章中介绍了PCB制造的工艺流程&#xff0c;但仍然想在过孔的铜厚和PCB的过孔厚径比两个方面再深入介绍。 PCB铜厚的定义 电路中铜的厚度以盎司(oz)**表示。那么&#xff0c;为什么用重量单位来表示厚度呢? 盎司(oz)的定义 将1盎司(28.35 克)的铜…...

【ES实战】Elasticsearch中模糊匹配类的查询

Elasticsearch中模糊匹配类的查询 文章目录 Elasticsearch中模糊匹配类的查询通配符查询前缀匹配查询正则匹配查询标准的正则操作特殊运算符操作 模糊化查询Fuzziness text类型同时配置keyword类型 Elasticsearch中模糊类查询主要有以下 Wildcard Query&#xff1a;通配符查询P…...

Spring Security认证流程

认证是Spring Security的核心功能之一&#xff0c;Spring Security所提供的认证可以更好地保护系统的隐私数据与资源&#xff0c;只有当用户的身份合法后方可访问该系统的资源。Spring Security提供了默认的认证相关配置&#xff0c;开发者也可以根据自己实际的环境进行自定义身…...

TXPOLARITY/RXPOLARITY设置

TXPOLARITY/RXPOLARITY&#xff1a;该端口用来反向输出数据的极性。 0&#xff1a;表示不反向。TXP是正&#xff0c;TXN是负&#xff1b; 1&#xff1a;标识反向。TXP是负&#xff0c;TXN是正&#xff1b; 如下图所示&#xff1a;...

2026届华为海思秋暑期IC实习秋招笔试真题(2025.04.23更新)

今天给大家分享下华为海思2025.04.23号最新IC笔试真题。 华为海思IC前端中后端(COT&XPU)岗位笔试机考题 更多华为海思数字IC岗秋招实习笔试真题&#xff0c;可以私信小编。 数字后端培训实战项目六大典型后端实现案例 秒杀数字后端实现中clock gating使能端setup viola…...

优考试V4.20机构版【可注册】

优考试V4.20机构版&#xff0c;可通过注册机完美激活。 优考试机构版‌是一个功能强大的在线考试系统&#xff0c;适用于各种 考试场景&#xff0c;包括在线考试、培训、学习等多种用途。以下是优考试机构版的主要功能和特点&#xff1a; ‌多层级管理‌&#xff1a;优考试机…...

携国家图书馆文创打造AI创意短片,阿里妈妈AIGC能力面向商家开放

在4月23日“世界读书日”之际&#xff0c;阿里妈妈联合国家图书馆文创正式发布了三条AI创意视频。 该系列视频以“千年文脉典籍奇谈”为主题&#xff0c;借助阿里妈妈的AIGC能力&#xff0c;以AI链接古今&#xff0c;打开阅读典籍新方式&#xff0c;引起不少人强烈兴趣。据悉&…...

Spark,配置hadoop集群2

1.建立新文件&#xff0c;编写脚本程序 在hadoop101中操作&#xff0c;在/root/bin下新建文件&#xff1a;myhadoop&#xff0c;输入如下内容&#xff1a; 2.分发执行权限 保存后退出&#xff0c;然后赋予脚本执行权限 [roothadoop101 ~]$ chmod x /root/bin/myhadoop 像下图…...

4.1 融合架构设计:LLM与Agent的协同工作模型

大型语言模型&#xff08;Large Language Models, LLMs&#xff09;与智能代理&#xff08;Agent&#xff09;的融合架构已成为人工智能领域推动企业智能化的核心技术。这种协同工作模型利用LLM的语言理解、推理和生成能力&#xff0c;为Agent提供强大的知识支持&#xff0c;而…...

MMsegmentation第一弹-(认识与安装)

前言 在刚接触MMsegmentation的时候&#xff0c;我是怎么看都看不明白&#xff0c;那个过程实在是太痛苦了&#xff0c;所以我当时就想着一定要把这个写成文章&#xff0c;希望后来者能很轻松的就上手。该系列文章不涉及框架的底层原理&#xff0c;仅以一个使用者的身份带领读…...

12.无线网络安全入门

无线网络安全入门 第一部分&#xff1a;无线网络基础与风险第二部分&#xff1a;Wi-Fi攻击方式第三部分&#xff1a;无线网络安全实践总结 目标&#xff1a; • 理解无线网络的基本原理和安全风险 • 掌握Wi-Fi常见的攻击方式 • 通过实践提升对无线网络安全的认识和防护能力 …...

React19源码阅读之commitRoot

commitRoot入口 在finishConcurrentRender函数&#xff0c;commitRootWhenReady函数&#xff0c;commitRoot函数。 commitRoot流程图 commitRoot函数 commitRoot 函数是 React 渲染流程中用于提交根节点的关键函数。它的主要作用是设置相关的优先级和状态&#xff0c;然后调…...

目标检测:视觉系统中的CNN-Transformer融合网络

一、背景 无人机&#xff08;UAVs&#xff09;在城市自动巡逻中发挥着重要作用&#xff0c;但它们在图像识别方面面临挑战&#xff0c;尤其是小目标检测和目标遮挡问题。此外&#xff0c;无人机的高速飞行要求检测系统具备实时处理能力。 为解决这些问题&#xff0c;我们提出…...

Turso:一个基于 libSQL的分布式数据库

Turso 是一个完全托管的数据库平台&#xff0c;支持在一个组织中创建高达数十万个数据库&#xff0c;并且可以复制到任何地点&#xff0c;包括你自己的服务器&#xff0c;以实现微秒级的访问延迟。你可以通过Turso CLI&#xff08;命令行界面&#xff09;管理群组、数据库和API…...

深度学习前沿 | TransNeXt:仿生聚合注意力引领视觉感知新时代

目录 1. 引言 2. 背景与挑战 3. TransNeXt 核心创新 3.1 像素聚合注意力&#xff08;PAA&#xff09; 3.2 长度缩放余弦注意力&#xff08;LSCA&#xff09; 3.3 卷积 GLU&#xff08;ConvGLU&#xff09; 4. 模型架构详解 5. 实验与性能评估 5.1 图像分类&#xff08;I…...

C语言-函数-1

以下是我初学C语言的笔记记录&#xff0c;欢迎在评论区留言补充 一&#xff0c;函数分为几类 * 函数分为两类&#xff1a; 一类是库函数&#xff1b;一类是自定义函数 * 库函数&#xff1a; 系统自己带的&#xff0c;在使用时候&#xff0c;要用到头文件&#xff1b; 查询库函…...

卡尔曼滤波解释及示例

卡尔曼滤波的本质是用数学方法平衡预测与观测的可信度 &#xff0c;通过不断迭代逼近真实状态。其高效性和鲁棒性&#xff0c;通常在导航定位中&#xff0c;需要融合GPS、加速度计、陀螺仪、激光雷达或摄像头数据&#xff0c;来提高位置精度。简单讲&#xff0c;卡尔曼滤波就是…...

openwrt作旁路由时的几个常见问题 openwrt作为旁路由配置zerotier 图文讲解

1 先看openwrt时间&#xff0c;一定要保证时间和浏览器和服务器是一致的&#xff0c;不然无法更新 2 openwrt设置旁路由前先测试下&#xff0c;路由器能否ping通主路由&#xff0c;是否能够连接外网&#xff0c;好多旁路由设置完了&#xff0c;发现还不能远程好多就是旁路由本…...