【数据结构】考研真题攻克与重点知识点剖析 - 第 1 篇:绪论

前言

  • 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。
  • 此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术有限,最终数据清洗结果不够理想,相关CSDN文章便没有发出。
  • 从这篇文章开始,这里我将按章节顺序,围绕考研真题展开计算机组成原理总共8章的知识,边学习边整理数据。

(考研真题待更新)

欢迎订阅专栏:408直通车

请注意,本文中的部分内容来自网络搜集和个人实践,如有任何错误,请随时向我们提出批评和指正。本文仅供学习和交流使用,不涉及任何商业目的。如果因本文内容引发版权或侵权问题,请通过私信告知我们,我们将立即予以删除。

文章目录

  • 前言
  • 第一章 绪论
    • 概述
      • 数据结构是一门研究非数值计算程序设计中计算机的操作对象以及它们之间的关系和操作的学科
      • 章节串联
    • 基本概念和术语
      • 数据结构:互相之间存在一种或多种特定关系的数据元素集合
        • 数据结构三要素
          • 逻辑结构
          • 存储结构/物理结构
          • 数据的运算
        • 小结
    • 抽象数据类型的表示与实现
      • 数据类型=值的集合+值集合上的一组操作
      • 抽象数据类型
      • 小结
    • 算法和算法评价
      • 算法的基本概念
      • 小结
      • 算法效率的度量
        • (渐近)时间复杂度
      • 小结
        • 空间复杂度
  • 考研真题
    • 408 - 2023

第一章 绪论

概述

数据结构是一门研究非数值计算程序设计中计算机的操作对象以及它们之间的关系和操作的学科

  • 一些问题无法用数学公式和方程描述,只能用描述非数值计算问题的数学模型,如表、树、图等具有逻辑关系的数据
    在这里插入图片描述

章节串联

在这里插入图片描述

基本概念和术语

在这里插入图片描述

  • 数据:能被计算机处理的符号集合
    • 在这里插入图片描述

    • 学生表

  • 现代计算机处理的数据

在这里插入图片描述

  • 数据元素:数据的基本单位,若干数据项组成

    • 在这里插入图片描述

    • 个人记录

  • 数据项:不可分割的最小单位

    • 学号、姓名
  • 数据对象:性质相同的数据元素集合,数据的子集
    在这里插入图片描述

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

在这里插入图片描述

数据结构三要素

在这里插入图片描述

逻辑结构
  • 逻辑结构

    • 概念

      • 指数据元素之间的逻辑关系,与数据的存储无关,独立于计算机的
    • 分类

      • 线性结构在这里插入图片描述

        • 一般线性表

        • 受限线性表

          • 栈、队列、串
        • 线性表推广

          • 数组、广义表
      • 非线性结构

        • 集合结构
          在这里插入图片描述

        • 树形结构
          在这里插入图片描述

        • 图状结构
          在这里插入图片描述

存储结构/物理结构
  • 存储结构/物理结构在这里插入图片描述

    • 概念

      • 指数据结构在计算机中的表示(映像)
    • 分类

      • 顺序存储在这里插入图片描述

        • 逻辑上相邻的元素存储在物理位置上也相邻的存储单元中
      • 链式存储在这里插入图片描述

        • 借助指示元素存储地址的指针来表示元素之间的逻辑关系
      • 索引存储在这里插入图片描述

        • 存储元素信息的同时,建立附加的索引表

          • 类似按姓名排序的手机通讯录
      • 散列存储在这里插入图片描述

        • 根据元素的关键字直接计算出该元素的存储地址(哈希存储)
数据的运算
  • 运算与实现:对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现
    在这里插入图片描述
小结

在这里插入图片描述

抽象数据类型的表示与实现

数据类型=值的集合+值集合上的一组操作

在这里插入图片描述

  • 约束变量或常量的取值范围

  • 约束变量或常量的操作

抽象数据类型

  • 在这里插入图片描述

    • 数据对象

    • 数据关系:数据元素间逻辑关系的定义

    • 基本操作

      • 基本操作名(参数表)

        • 赋值参数:只为操作提供输入值

        • 引用参数:&打头,可返回操作结果

      • 初始条件

        • 执行操作前,数据结构和参数应满足条件
      • 操作结果

        • 操作正常完成后,数据结构变化和返回结果
  • C语言实现抽象数据类型

    • 用已有数据类型定义描述它的存储结构

    • 用函数定义描述它的操作

在这里插入图片描述

小结

在这里插入图片描述

算法和算法评价

算法的基本概念

在这里插入图片描述
在这里插入图片描述

  • 概念

    • 算法是对特定问题求解步骤的一种描述,指令的有限序列,每条指令表示一个或多个操作
  • 重要特性

    • 有穷性 在这里插入图片描述
    • 确定性(无二义性)
      在这里插入图片描述
    • 可行性、输入、输出在这里插入图片描述
  • 算法设计要求

    • 正确性、可读性(晦涩难懂可能隐藏错误)、健壮性(当输入非法数据,能恰当做出反应)、高效性
      在这里插入图片描述
      在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

小结

在这里插入图片描述

算法效率的度量

(渐近)时间复杂度
  • (渐近)时间复杂度在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 概念

      • 算法中基本语句重复执行的次数是问题规模n的某个函数f(n),算法的时间度量记作:T(n) = O( f(n) )

      • 基本语句:执行次数最多、重复执行次数与算法执行时间成正比的语句

    • 分类在这里插入图片描述
      在这里插入图片描述

      • 最好时间复杂度

      • 平均时间复杂度:所有可能输入实例在等概率条件下,算法的期望运行时间

      • 最坏时间复杂度:默认情况下算这个

    • 计算方法

      • 找出语句频度最大的那条语句作为基本语句

      • 计算基本语句的频度得到问题规模n的某个函数法 f(n)

      • 取其数量级用符号“O”表示

    • 常见复杂度排序

      • O(1) < O(log2n) < O(n) < O(nlog2n) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
    • 计算规则

      • 加法规则: O( f(n) ) + O( g(n) ) = O( max( f(n), g(n) ) )

      • 乘法规则:O( f(n) ) × O( g(n) ) = O( f(n) × g(n) )

    • 经典例题

      • 在这里插入图片描述

      • 在这里插入图片描述

      • for(int i=0;i<n;i++){ //该语句执行n+1次,因为最后条件判断不满足还有一次
        干点啥; //只执行n次
        }

小结

在这里插入图片描述

空间复杂度

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 算法所需存储空间的度量:S(n) = O( f(n) )

  • 算法本身要占据的空间+辅助空间(算这个,注意递归深度也是)

  • 算法原地工作:算法所需的辅助空间为常量,O(1)

在这里插入图片描述

考研真题

408 - 2023

(考研真题待更新)

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

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

相关文章

【boost_search搜索引擎】1.获取数据源

boost搜索引擎 1、项目介绍2、获取数据源 1、项目介绍 boost_search项目和百度那种不一样&#xff0c;百度是全站搜索&#xff0c;而boost_search是一个站内搜索。而项目的宏观上实现思路就如同图上的思路。 2、获取数据源 我们要实现一个站内搜索&#xff0c;我们就要有这…

每日一题 --- 两两交换链表中的节点[力扣][Go]

两两交换链表中的节点 题目&#xff1a;24. 两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&a…

详细剖析多线程2----线程安全问题(面试高频考点)

文章目录 一、概念二、线程不安全的原因三、解决线程不安全问题--加锁&#xff08;synchronized&#xff09;synchronized的特性 四、死锁问题五、内存可见性导致的线程安全问题 一、概念 想给出⼀个线程安全的确切定义是复杂的&#xff0c;但我们可以这样认为&#xff1a; 在多…

Web前端—浏览器渲染原理

浏览器渲染原理 浏览器渲染原理渲染时间点渲染流水线1. 解析HTML—Parse HTML2. 样式计算—Recalculate Style3. 布局—Layout4. 分层—Layer5. 绘制—Paint6. 分块—Tiling7. 光栅化—Raster8. 画—Draw完整过程 面试题1. 浏览器是如何渲染页面的&#xff1f;2. 什么是 reflow…

IDEA, Pycharm, Goland控制台乱码

IDEA, Pycharm, Goland控制台乱码 问题描述: 控制台出现&#xfffd;&#xfffd;&#xfffd;&#xfffd;等乱码 复现频率: 总是 解决方案: 以IDEA为例 添加 -Dfile.encodingUTF-8位置 idea64.exe.vmoptions 在安装idea的bin目录idea.vmoptions idea客户端 示意图

vue3怎么读取本地json数据

在Vue 3中&#xff0c;可以使用fetch API或其他HTTP客户端来读取本地JSON数据。以下是一个使用fetch的示例&#xff1a; <template><div><h1>本地JSON数据</h1><div v-if"data">{{ data }}</div></div> </template>…

Mysql数据库:事务管理

目录 一、Mysql事务的概述 1、Mysql事务的概念 2、事务的ACID四大特性 3、事务之间的相互影响 4、事务的四种隔离级别 5、MySQL与Oracle自动提交事务的区别 6、事务隔离级别的作用范围 二、Mysql事务相关操作 1、查询和设置事务隔离级别 1.1 全局级事务隔离级别 1.1…

初识 Redis 浅谈分布式

目 录 一.认识 Redis二.浅谈分布式单机架构分布式是什么数据库分离和负载均衡理解负载均衡数据库读写分离引入缓存数据库分库分表引入微服务 三.概念补充四.分布式小结 一.认识 Redis 在 Redis 官网我们可以看到介绍 翻译过来就是&#xff1a;数以百万计的开发人员用作缓存、…

(ES6)前端八股文修炼Day2

1. let const var 的区别 var&#xff1a; var 是在 ES5 中引入的声明变量的关键字。 具有函数作用域&#xff0c;而不是块作用域&#xff0c;这意味着使用 var 声明的变量在函数内部是可见的。 变量可以被重复声明&#xff0c;而且变量的值可以在声明前使用&#xff0c;这可能…

29-5 webshell 流量分析 - 菜刀

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、上传木马到靶场然后使用菜刀连接抓取流量 1)上传木马到upload-labs靶场 自己创建一个php文件作为木马 <?php eval($_POST["pass"]);2)然后开启 Wireshark …

力扣-20 有效的括号详解 Java

目录 1.题目分析 2.基础知识储备 2.1 哈希表 2.2 栈的存取 3. 逻辑概要 4.源码 示例 1.题目分析 为了对比都是从内而外&#xff0c;一个个匹配&#xff0c;全部匹配成功即为有效字符 2.基础知识储备 2.1 哈希表 简单来说&#xff0c;keyvalue存储 &#xff0c;通过key…

我的世界Linux MCSM+Mohist服务端部署

前言 最近玩MC自己整合了一个新包&#xff0c;玩起来很舒服。但是有时会有朋友一起来玩&#xff0c;加上我自己玩的客服端上加了光影&#xff0c;对电脑负载有点大。所以想做个服务器&#xff0c;减小一下我电脑的负载。顺便写篇文章记录一下部署过程。 环境要求 服务器部署要…