嵌入式开发学习---(部分)数据结构(无代码)

数据结构

为什么学习数据结构?

1)c语言告诉如何写程序,数据结构是如何简洁高效的写程序

2)遇到一个实际问题,需要写程序去实现相应功能,需要解决那两个方面的问题?
如何表达数据之间的逻辑规律以及如何将数据存放到计算机中

数据结构:数据的逻辑结构存储结构及操作(数据的运算)

数据:不只是一个单纯的数值,而是类似于一个集合的概念

结构:数据之间的关系
采用什么方法解决问题

算法
数据结构加算法就是程序

数据结构是什么

数据的逻辑结构存储结构及操作(数据的运算)

数据

数据:不只是一个单纯的数值,而是类似于一个集合的概念

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

数据项:是数据的最小单位,描述数据元素的信息

节点:数据元素

逻辑结构

数据之间的逻辑规律和数据之间的关系

数据之间的关系

1)线性关系 ----->线性结构 ------->一对一------->线性表

2)层次关系------>树形结构--------->一对多--------->树

3)网状关系------->图状结构-------->多对多---------->图

存储结构

数据的逻辑结构在计算机中的具体实现

1)顺序存储结构

数组:在内存当中一段连续的内存空间中保存数据(如c语言中的一维数组)
2)链式存储结构

特点 :数据在内存中是不连续的,通过指针进行连接

链表:

c 复制代码
struct    node_t
{
	int  date;//数据域
	struct   node_t  * next;//指针域,指向自身结构体类型
};

3)索引存储结构

提高查找速度

索引表 + 数据文件

4)散列存储结构

数据在存储的时候与关键码之间存在某种对应关系

存的时候按照对应关系存

取的时候按照对应关系取

操作(运算)

增删改查

算法

解决问题的思想方法

程序

用计算机语言对算法的具体实现

算法与数据结构

  • 算法 + 数据结构 = 程序
    算法的设计 :取决于选定的逻辑结构
    算法的实现:依赖于采用的存储结构(顺序、链式)

算法的特性

复制代码
1)有穷性:算法的执行步骤是有限的
2)确定性:算法的每一步都是有明确含义的
3)可行性:算法能够在有限的时间内完成
4)输入
5)输出

如何评价一个算法的好坏?

复制代码
正确性:保证算法可以正确完成功能
易读性:容易被解读
健壮性:容错处理
高效性:执行效率,算法执行快慢容易受到计算机性能的影响,不可以作为评判算法高效性的标准,这通过可执行语句重复执行次数来衡量算法是否高效 。(时间复杂度)
低存储性:占用空间小(空间复杂度)

时间复杂度

复制代码
算法的可执行语句重复执行的次数
c 复制代码
通常时间复杂度用一个问题规模函数来表达	
T(n) = O(f(n))
T(n)	//问题规模的时间函数
n		问题规模   
O		//时间数量级
f(n)	//算法的可执行语句重复执行的次数  用问题规模n的某个函数f(n)来表达

计算大O的方法

c 复制代码
1)根据问题规模n写出表达式f(n)
2)只保留最高项,其他项舍去
3)如果最高想系数不为1,除以最高项系数
4)如果有常数项,将其置为1  // f(n)=8; O(1)

空间复杂度

算法占用的空间大小。一般将算法的辅助空间作为衡量空间复杂度的标准。

算法占用的存储空间包括:

c 复制代码
1)输入输出数据所占空间
2)算法本身所占空间
3)额外需要的辅助空间
相关推荐
寒水馨20 分钟前
Linux下载、安装 Codex CLI(附安装包codex-x86_64-unknown-linux-musl.tar.gz)
linux·openai·终端·ai编程·codex·智能体·codex cli
ACP广源盛1392462567330 分钟前
此芯 P1 AI BOX / AI NAS@ACP#IX8008、IX8024 应用场景与市场机会
大数据·人工智能·分布式·单片机·嵌入式硬件
其实防守也摸鱼40 分钟前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·运维·网络·人工智能·学习·安全·macos
YM52e5 小时前
鸿蒙Flutter Padding内边距:EdgeInsets详解
android·学习·flutter·华为·harmonyos·鸿蒙
摇滚侠6 小时前
AI 编程工具 《TRAE 官方手册》阅读笔记 AI 编程核心 上
人工智能·笔记
m沐沐7 小时前
【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
人工智能·pytorch·深度学习·算法·yolo·目标检测·transformer
广药门徒7 小时前
虚拟机联网20260725
嵌入式硬件
不会就选b7 小时前
算法日常・每日刷题--<链表>3
数据结构·算法·链表
geovindu7 小时前
go: Iterative Algorithms
开发语言·后端·算法·golang·迭代算法
西安老张(AIGC&ComfyUI)7 小时前
第034章:ComfyUI&AIGC一阶段学习总结及下阶段学习安排
学习·aigc