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

135.DS--第一章

数据结构绪论

本来不想再总结ds的 但是一想这个学的快 也不能框框学吧 所以就花点时间总结一下吧 是个好久跟第一遍相比确实快了很多 理解也更加深入 所以这个系列与其说408最后ds的总结 不如叫做ds的深入补充 会搭配一些综合题算法的扩展

啥是数据结构?相互之间存在一种或多种特定关系的数据元素的集合

所以太简单的概念不再过多阐述 参考之前即可

  • 数据
  • 数据元素:数据基本单位
  • 数据项:数据元素最小单位
  • 数据对象:具有相同性质的数据元素的集合
  • 数据类型:一个值的集合及定义在该集合上的一组操作的总称
  • ADT抽象数据类型:一个数学模型及定义在该模型上的一组操作

参考之前的图
image

所谓数据结构无非研究三个东西:

  • 逻辑结构
  • 物理(存储)结构
  • 数据的运算

ds逻辑结构
image

逻辑结构和数据在计算机中的存储方式无关 独立于具体系统的
就XX的一句话 假的东西 用来描述的玩意

常见的逻辑关系
image

存储结构:在计算机中的具体实现 (数据元素的表示及相互关系的表示)

  • 顺序存储
  • 链式存储
  • 索引存储
  • 散列(哈希)存储

算法

对特定问题求解步骤的描述 一个有穷的指令序列
知道了数据结构关系 那么之间的运算就需要用到算法
实际上ds和算法紧密联系

当然在此推荐力扣算法题 活跃大脑应付一些考试场景 并非完全没用也不是完全绝对有用
https://leetcode.cn/studyplan/top-100-liked/
image

重要五个特性:

  • 有穷性
  • 确定性
  • 可行性
  • 0个/多个输入
  • 1个/多个输出

评判算法的好坏:

  • 正确性
  • 可读性
  • 健壮性
  • 高效率和低存储消耗

那比如甩给你一个代码 这个算法怎么确定度量 就是具体的东西

image

  • 时间复杂度
  • 空间复杂度
    用到上述两个东西 尤其是时间复杂度 也是本节考点所在
时间复杂度

一句话描述算法执行时间和问题规模n的正比关系
用语句频度即 T执行次数 来衡量

算法的设计会有时间复杂度的好坏
取最坏时间复杂度为算法效率的标准评价

大道至简 遵从两个准则
image

常见的时间复杂度排序
image

不着急做题 先看一下做这类题目的方式

  • 1.t次数和条件代入情况
  • 2.t次数和n变化情况
  • 3.嵌套复杂加 分析累计算
    没错较之前升级了 在题目中应用

image
注意这里的嵌套

对比之前为何会多出第三条 因为就是后面题的作用
简单的直接乘法规则用于内层循环固定的n 不依赖外层变量

对比几道真题

image
这道题目就需要分析 外层循环+内层循环算时间复杂度

我们好好来拆解这道题目

image
image

注:我这种方法包括之前总结的 其实根本就不是正确解题方式 而是我自创的容易理解的方式 所以可能有时就是错误的 但大部分题目可以歪打正着

image

image

image

image
这个在初始c语言函数肯定见的不见了

再次申明 我的这种做题方式不是正确的! 而是我自己快速做题的一种方式 所以酌情参考 核心就是:

  • 看执行次数t和n的变化 如果是t的平方 那时间复杂度就是O(根号n)
  • 看执行次数t和条件的变化 如i*i<n 求出t和i的变化 代入 得到时间复杂度
  • 其他参考加法准则取max 和(固定n)嵌套相乘时间复杂度
  • 如果碰到复杂的嵌套 就要正常分析 看t的次数和时间了(这个其实才是正确的)

还是不懂我的方式?那最后看一道题目理解
image

第一种方式分析t和n的变化 就是执行一次 看看n得取几
其实这种很抽象 就是得到n对于t的规律 然后求出时间复杂度
image
但是这种方式大部分都能解决

第二种方式分析t和x的变化然后代入条件 得到关于t<n/2的关系 也能求出
image
因为这个多了一层分析 然后再代入 所以没有第一种快 但是按理说这种不容易出错
其实也类似正确解法

空间复杂度

一句话就看需不需要额外的存储空间
后续线性表一章我们会着重分析

大致总结到此 对比之前的总结 更为详细 也再理解书本更透彻

http://www.jsqmd.com/news/614263/

相关文章:

  • 6.1 链路追踪 (Tracing)
  • 贾子思想三原则:规律审判、认知觉醒与文明共生
  • 嵌入式Linux开发时双网络配置:开发板与互联网的并行访问
  • 千问3.5-2B企业知识库接入:将图理解结果自动打标,注入RAG向量库
  • 如何通过 5 种解决方案从 Infinix 恢复已删除的文件
  • 高性能客服系统技术内幕:通过 SpinWait 自旋等待结构体提升高频消息分发性能敬
  • Qwen3.5-2B轻量化模型效果:20亿参数下长文本摘要保持关键信息率
  • 国产免费2B开源语音模型征服《莽撞人》!复刻郭德纲最难贯口
  • OpenClaw 的 sessions_send 机制
  • 涨薪技术|Prometheus自定义告警规则
  • 第十四届蓝桥杯省赛C/C++ 大学 B 组 第五题 接龙数列
  • 2026大健康ODM优质服务推荐榜 江西口服液定制指南 - 资讯焦点
  • 单调队列优化多重背包 学习笔记 详解底
  • 如何5分钟搞定JiYuTrainer:让极域电子教室限制彻底消失
  • ChatGLM3-6B功能体验:流式输出,像真人一样打字聊天
  • 019、FreeRTOS-MPU:内存保护单元支持
  • 中科蓝讯-AB5756C-小白SDK开发-自定义电量处理流程
  • 零基础部署Nanbeige 4.1-3B:像素风对话前端,让AI聊天像玩游戏
  • P6478 [NOI Online #2 提高组] 游戏
  • Plus Jakarta Sans:开源字体的协作设计与实践指南
  • 免费使用云服务器训练深度学习模型
  • 周测复盘【前缀和and差分】
  • 革新性开源驱动:OpenTabletDriver全场景配置指南
  • 快速体验Qwen3-0.6B:FP8量化模型+Chainlit前端,简单三步上手
  • 短链接day-07 技术重点
  • AI图文识别 VS 人类学习|后Transformer时代
  • Web后端基础(SpringBoot)
  • 【初阶数据结构】连续空间的秩序之舞: 顺序表
  • 暗黑破坏神2存档编辑器:5分钟掌握游戏存档自定义的完整指南
  • OZON选品插件实战指南:新手快速上手,精准挖掘爆单AI选品的潜力