408——数据结构(持续更新)

文章目录

  • 一、绪论
    • [1.1 相关概念](#1.1 相关概念)
    • [1.2 数据结构三要素](#1.2 数据结构三要素)
    • [1.3 相关习题](#1.3 相关习题)
    • [1.4 复杂度](#1.4 复杂度)
      • [1.4.1 时间复杂度](#1.4.1 时间复杂度)
      • [1.4.2 复杂度相关习题](#1.4.2 复杂度相关习题)
  • 二、线性表

一、绪论

1.1 相关概念

  • 数据:数据是信息的载体,所有能被输入到计算机中,且能被计算机处理的符号的集合。如图片、身份信息等。
  • 数据元素和数据项数据元素是数据的基本单位数据项是构成数据元素的最小单位,一个数据集元素可有多个数据项。如:每个学生信息就是数据元素,而学生信息中包含的姓名、年龄等信息就是数据项。
  • 数据对象:具有相同性质的数据元素的集合,是数据的一个子集。如:所有学生的信息可以作为一个数据对象。
  • 数据类型:一组值的集合和定义在该集合上的操作的总和。其中有原子类型(不可再分割)、结构类型(多个原子类型值的集合)、抽象数据类型。
  • 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。如:在学生表中,张三拍在李四的上面,这样有相互关系的数据集合表可称为结构。
  • 数据:该表就是数据;
  • 数据元素:每个学生的信息就是数据元素,即蓝框所示部分。每行为一个数据元素,其可由多个数据项组成,数据项不可再分。
  • 数据项:如红框所示。
  • 数据对象:如黄框所示,所有学生的信息可作为数据对象;
  • 数据类型:如图中年龄为int类型。

1.2 数据结构三要素

  1. 逻辑结构

    • 线性结构:线性表、栈和队列、数组、串
    • 非线性结构:集合、树、图
  2. 物理结构(存储结构)

    • 顺序存储(逻辑相邻,实际存储位置也相邻)

    • 链式存储(逻辑相邻,物理不相邻)

    • 索引存储(利用附加索引表):内存中不仅仅要存放每一个数据元素,还要建立一张索引表,其中有多个索引项,每个索引项包括关键字、关键字对应的地址。

    • 散列存储(哈希存储)

  3. 数据的运算

1.3 相关习题

顺序表、链表和有序表:

  • 顺序表链表 是根据线性表的存储结构(顺序或链式)来划分的概念;
  • 有序表式根据线性表的数据元素的数值大小来划分的概念。

1.4 复杂度

1.4.1 时间复杂度

  1. 常数阶:与问题规模的大小无关,执行时间恒定的算法,O(1)时间复杂度。

  2. 线性阶:要确定某个算法的阶次,需要确定某个特定语句运行的次数 。因此,要分析算法的时间复杂度,关键是分析循环结构的某个特定语句运行情况 。下图,循环的时间复杂度为O(n),因为循环体的代码必须要执行n次。

  3. 对数阶

  4. 平方阶

推导时间复杂度时:

  • 当运行时间只有常数时,用1代替;
  • 在得到的运行次数函数中,只【保留最高阶】,且【除去最高阶项中相乘的系数】。

1.4.2 复杂度相关习题

  1. 算法执行过程中,所需要的存储空间 被称为算法的空间复杂度
  2. 算法的时间复杂度 取决于问题规模待处理数据的初态

二、线性表

相关推荐
CSharp精选营2 天前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
刘马想放假6 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
北域码匠7 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
Darling噜啦啦13 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
小小工匠14 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
玖玥拾15 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
Qres82115 天前
算法复键——树状数组
数据结构·算法
牛油果子哥q15 天前
并查集(DSU)超精讲,路径压缩、按秩合并、万能模板、连通性判定、最小生成树与刷题实战全解
数据结构·c++·最小生成树·并查集
凌波粒15 天前
LeetCode--491.递增子序列(回溯算法)
数据结构·算法·leetcode
WL学习笔记15 天前
单项不带头不循环链表
数据结构·链表