数据结构_day01_数据结构概论和算法分析
数据结构:
数据结构:主要讨论数据表示和数据处理的基本方法! 数据结构(数据的组织 + 存储) -----> 决定程序效率
算法:是用来描述问题的解决方案,是具体的机械的操作步骤! 算法 + 数据结构 = 程序
数据:能输入到计算机中并能使计算机程序识别和处理的符号
数据分为:数值数据(整数、实数等)、非数值数据(文字、声音、图形等)。
数据对象:是性质相同数据元素的集合;
数据元素:组成数据的基本单位,一般是一个实体对象;
数据项:组成数据元素的最小单位
数据结构:相互之间存在一定关系的数据元素的集合,研究的就是数据对象中数据元素之间的关系
数据类型:一组同类型数据集合的总称
数据结构分两种结构:
1、逻辑结构(概念结构)(数据结构之间的逻辑关系:集合、线性结构、树结构、图结构)
2、存储结构(物理结构)(顺序存储、链式存储)
算法:
算法:对特定问题求解步骤的一种描述(指定有限序列)
算法三个特性:1、有穷性、确定性、可行性
算法可以无输入,但一定有输出
算法的描述方法:1、自然语言; (直观,冗长、人类交流常用文字语言、可能有二义性)
2、流程图; (流程框图)
3、程序设计语言; (C/C++等程序设计语言)
4、伪代码 (自然语言+程序设计语言=》结合,表达自然语言,执行程序语言)
算法分析:
1、事后统计分析法;(不提倡使用,被淘汰)
2、事前统计分析法 (渐进复杂度)
1、时间复杂度;T(n) 当空间规模足够大,基本语句执行次数在渐进意义下的分析(事前)
2、空间复杂度; S(n) 排除本身输入输出,算法执行临时开辟的存储空间的数量级
若两段算法的复杂度分别为 T1(n) 和 T2(n)
则:T1(n) + T2(n) = max(T1(n) , T2(n) )
T1(n) x T2(n) = T1(n) x T2(n)
若T(n)是关于n的k捷多项式,那么T(n) = O(n^k)
for循环时间复杂度等于循环次数乘于单体时间复杂度
if-else的时间复杂度取各分支中最大复杂度分支复杂度
整体框架:
数据结构:1、线性结构(顺序表(数组)、链表、栈、队列)
2、非线性结构 (树、图)
3、查找技术和排序算法
逻辑结构
物理结构
注意:顺序表和链表是基础
栈和队列是重点!
从设计和封装角度学习数据结构!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现