王道数据结构第一章个人向笔记

devtools/2024/9/23 9:21:52/

文章目录

  • 1.1.0 导读
  • 1.1.1 绪论
  • 1.1.2 数据结构的三要素
    • 逻辑结构
    • 数据的运算
    • 物理结构(存储结构)
  • 1.2.1 算法的基本概念
  • 1.2.2 时间复杂度
  • 1.2.3 空间复杂度

1.1.0 导读

数据结构在学什么?

  • 如何用程序代码把显示世界的问题信息画
  • 如何用计算机高效地处理这些信息从而创造价值

1.1.1 绪论

  • 数据:是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料
  • 数据元素是数据的基本单位,通常作为一个整体进行考虑和处理
  • 一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位
  • 数据对象是具有相同性质的数据元素的集合,是数据的一个子集
  • 数据结构是相互之间存在一种或多种特定关系的数据元素的集合
    image

1.1.2 数据结构的三要素

image

逻辑结构

  1. 集合
    各个元素同属一个集合,别无其他关系
  2. 线性结构
    数据元素之间是一对一的关系,出了第一个元素,所有元素都有唯一的前驱,除了最后一个元素,所有元素都有唯一后继
  3. 树形结构
    数据元素之间是一对多的关系
  4. 图结构
    数据元素之间是多对多的关系

数据的运算

针对某种逻辑结构,结合实际需求,定义基本运算

物理结构(存储结构)

数据的物理结构(存储结构):如何用计算机表示数据元素的逻辑关系

image
数据类型是一个值的集合和定义在此集合上的一组操作的总称
抽象数据类型(ADT)是抽象数据组织及与之相关的操作

1.2.1 算法的基本概念

程序=数据结构+算法

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

算法的特性

  1. 有穷性:一个算法必须总在执行有穷步之后结束
  2. 确定性:算法中的每条指令必须有确切的含义。对于相同的输入只能得出相同的输出
  3. 可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现
  4. 输入
  5. 输出

1.2.2 时间复杂度

事前预估算法时间开销 T ( n ) T(n) T(n)与问题规模n的关系
可以只考虑阶数高的部分
大O表示法:
大O表示同阶,同等数量级,当 n − > 无穷 n->无穷 n>无穷二者之比为常数
image
image
常对幂指阶

  • 结论1:顺序执行的代码只会影响常数项,可以忽略
  • 结论2:只需挑循环中的一个基本操作分析它的执行次数与n的关系即可
  • 结论3:如果有多层循环只需要考虑最深层循环即可

image

1.2.3 空间复杂度

算法原地工作–算法所需内存空间为常量
只需关注存储空间的大小和问题规模相关的变量
函数递归调用会带来内存开销
空间复杂度=递归调用的深度(一般来说,每层递归空间都是常数)
image


http://www.ppmy.cn/devtools/23045.html

相关文章

2024深圳杯(东北三省)A题多个火箭残骸的准确定位原创论文分享

大家好,从昨天肝到现在,终于完成了2024深圳杯数学建模A题的完整论文啦。 实在精力有限,具体的讲解大家可以去讲解视频: 2024深圳杯(东北三省)数学建模A题火箭残骸定位保姆级教学,手把手教你如何…

人脸识别系统架构

目录 1. 系统架构 1.1 采集子系统 1.2 解析子系统 1.3 存储子系统 1.4 比对子系统 1.5 决策子系统 1.6 管理子系统 1.7 应用开放接口 2. 业务流程 2.1 人脸注册 2.2 人脸验证 2.2.1 作用 2.2.2 特点 2.2.3 应用场景 2.3 人脸辨识 2.3.1 作用 2.3.2 特点 2.3.3…

陪丨玩丨系丨统前后端开发流程,APP小程序H5前后端源码交付支持二开!多人语音,开黑,线上线下两套操作可在一个系统完成!

100%全部源码出售 官网源码APP源码 管理系统源码 终身免费售后 产品免费更新 产品更新频率高 让您时刻立足于行业前沿 软件开发流程步骤及其作用: 软件开发是一个复杂而系统的过程,涉及多个环节,以下是软件开发的主要流程步骤及其作用…

密码学python库PBC安装使用

初始化 使用环境云服务器(移动云可以免费使用一个月) 选择ubuntu18.04-64位 第一次进入linux命令行之后是没有界面显示的,需要在命令行下载。 这里按照其他云平台操作即可:Ubuntu18.04 首次使用配置教程(图形界面安装) 记录好登录…

电力调度自动化系统,如何减少配电安全隐患?

“双碳”战略目标下,数据中心迎来了更多发展机遇,同时电力调度自动化系统也迎来更多挑战,如何保障持续稳定的电力供应、确保关键负载的可靠运行,并兼顾数字化管理、绿色可持续转型等等议题成为数据中心行业构建未来领导力的重要关…

Node.js 22 发布,原生支持 WebSocket 客户端

昨日,Node.js 官方博客正式宣布 Node.js 22 的发布!新版本亮点包括 require() ES 模块、WebSocket 客户端、V8 JavaScript 引擎的更新等! Node.js 22 将在 10 月进入长期支持 (LTS),但在此之前,它将是接下来六个月的 …

基于MATLAB野外观测站生态气象数据处理分析

朱老师(副教授):来自国内重点高校,长期从事野外观测站生态气象监测与评估研究,发表SCl论文多篇,主持国家与地方科研项目多个,在生态环境数据处理与分析中具有丰富的实践项目经验。 以野外观测站高频时序生态气象数据为例&#xff…

[C++] 类和对象 _ 剖析构造、析构与拷贝

一、构造函数 构造函数是特殊的成员函数,它在创建对象时自动调用。其主要作用是初始化对象的成员变量(不是开辟空间)。构造函数的名字必须与类名相同,且没有返回类型(即使是void也不行)。 在C中&#xff0…