首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >王道数据结构笔记:1.序论

王道数据结构笔记:1.序论

作者头像
平凡之路.
发布2025-01-24 09:00:47
发布2025-01-24 09:00:47
2480
举报
文章被收录于专栏:学习学习

1.1数据结构基本概念

1.1.1基本概念和术语

1. 数据
  • 定义:信息的载体,用于描述客观事物的属性,包含数、字符等符号。
  • 作用:是计算机程序加工处理的原料。
2. 数据元素
  • 定义:数据的基本单位,作为整体处理。
  • 组成:可由若干数据项构成。 例:学生记录(数据元素)由学号、姓名、性别(数据项)组成。 一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。
3. 数据对象
  • 定义:具有相同性质的数据元素的集合。 例:整数数据对象为集合 N={0,±1,±2,… }。
4. 数据类型
  • 定义:值的集合及其上操作的总称。
    • 原子类型:不可再分的数据类型。
    • 结构类型:可分解为多个成分的数据类型。
    • 抽象数据类型:数学模型及定义在其上的操作集合。
5. 数据结构
  • 定义:数据元素间特定关系的集合。
  • 三要素:
    1. 逻辑结构:数据元素间的逻辑关系,与存储无关。
    2. 存储结构:逻辑结构在计算机中的实现方式(物理结构)。
    3. 数据的运算:施加在数据上的运算,包括逻辑功能和具体实现。

关系图

1.1.2数据结构的三要素详解

1. 数据的逻辑结构
  • 分类:
    • 线性结构:元素间为一对一关系(如:线性表、栈、队列)。
    • 非线性结构:
      • 集合:元素间只有“同属集合”关系。
      • 树形结构:元素间为一对多关系。
      • 图状结构:元素间为多对多关系。
2. 数据的存储结构

存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。它包括数据元素的 表示和关系的表示。数据的存储结构是用计算机语言实现的逻辑结构,它依赖于计算机语言。

  • 存储结构的类型:
    1. 顺序存储:
      • 邻接存储,支持随机访问。
      • 优点:空间紧凑。
      • 缺点:可能产生外部碎片。
    2. 链式存储:
      • 通过指针表示逻辑关系。
      • 优点:灵活,无碎片。
      • 缺点:额外占用存储空间,访问速度较慢。
    3. 索引存储:
      • 建立附加的索引表。
      • 优点:检索速度快。
      • 缺点:需额外存储空间,增删操作复杂。
    4. 散列存储(哈希存储):
      • 通过关键字计算存储地址。
      • 优点:增删查快。
      • 缺点:可能存在冲突,需要处理冲突。
3. 数据的运算
  • 定义:针对逻辑结构,描述运算的功能。
  • 实现:针对存储结构,描述具体操作步骤。场景。

1.2 算法与算法评价

1.2.1 算法的基本概念
算法定义

算法(Algorithm)是求解特定问题的步骤描述,是由有限条指令组成的序列,每条指令表示一个或多个操作。

算法的五个重要特性

  1. 有穷性:算法在有限步骤内结束,且每一步可在有限时间内完成。
  2. 确定性:相同输入总能得出相同输出。
  3. 可行性:每个步骤可通过有限次基本运算实现。
  4. 输入:零个或多个输入,取自特定集合。
  5. 输出:一个或多个输出,与输入有确定关系。

设计“好”算法的目标

  1. 正确性:解决问题的能力。
  2. 可读性:易于理解。
  3. 健壮性:能处理非法输入,避免异常输出。
  4. 效率与存储优化:
    • 效率:执行时间。
    • 存储量需求:最大存储空间需求。
1.2.2 算法效率的度量
时间复杂度
  1. 定义:算法执行的时间,取决于问题规模 n。
    • 频度:语句在算法中被执行的次数。
    • 时间复杂度公式:T(n)=O(f(n)),表示算法中基本运算次数的数量级。
  2. 分类
    • 最好时间复杂度:算法运行最快的情况。
    • 最坏时间复杂度:算法运行最慢的情况(通常考虑最坏复杂度)。
    • 平均时间复杂度:等概率下,算法期望运行时间。
  3. 规则
    • 加法规则
    T(n)=T1(n)+T2(n)=O(max⁡(f(n),g(n)))
    • 乘法规则
    T(n)=T1(n)×T2(n)=O(f(n)⋅g(n))
  4. 常见时间复杂度比较: 𝑂(1) < 𝑂(log 𝑛) < 𝑂(𝑛) < 𝑂(𝑛 log 𝑛) < 𝑂(𝑛2 ) < 𝑂(2𝑛) < 𝑂(𝑛!) 常数阶 < 对数阶 < 线性阶 < 线性对数阶 < 平方阶 < 指数阶 < 阶乘阶
空间复杂度
  1. 定义:算法所需存储空间的量,记为
S(n)=O(g(n))
  1. 分类:
    • O(n):辅助空间与问题规模 n 成正比。
    • O(1):算法为原地工作(辅助空间为常量)。
  2. 定义:算法所需存储空间的量,记为
S(n)=O(g(n))
  1. 分类:
    • O(n):辅助空间与问题规模 n 成正比。
    • O(1):算法为原地工作(辅助空间为常量)。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1数据结构基本概念
    • 1.1.1基本概念和术语
      • 1. 数据
      • 2. 数据元素
      • 3. 数据对象
      • 4. 数据类型
      • 5. 数据结构
    • 1.1.2数据结构的三要素详解
      • 1. 数据的逻辑结构
      • 2. 数据的存储结构
      • 3. 数据的运算
  • 1.2 算法与算法评价
    • 1.2.1 算法的基本概念
    • 1.2.2 算法效率的度量
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档