一、数据结构概念:
对数据之间的关系的结构类型进行总结归纳。
学好这门课,让我们成为信息革命的参与者。
名词解析:
数据项:您申请一个微博账号,其中姓名,性别这些就是数据项
组合项:您账号的生日是由年月日组成,年月日就是组合项
数据元素:由n个数据项组成的集合
何为结构呢?
就你去设计一个数据库的时候,你需要考虑的就是运用什么逻辑结构设计这个数据库
比如你使用了线性结构,然后就要考虑线性结构的存储结构是什么,有顺序,链式,索引以及散列。
⭐️考点:从逻辑上可以把数据结构分成线性结构和非线性结构
数据元素之间的物理关系是什么?
🌟考点:清楚存储结构有两大类,顺序存储与非顺序(链式、索引、散列)
三大结构:
1、线性结构
2、树型结构
3、圆型结构
两大操作:
查找操作
排序操作
课后习题
二、算法的基本概念
🌟考点:
算法的特性
1、输入输出:可以没有输入,至少一个输出
2、有穷:有限的步骤完成
3、确定:无二义
4、可行:每一步可行
设计算法的要求
1、正确
2、可读性
3、健壮
4、高时效低存储
三、算法的效率如何度量之时间复杂度
时间复杂度的计算方法是这样的
把代码行用数字标记,然后看每一行的代码会执行几次,最后把每一行执行的次数相加/
最后您可以把计算的这个程序的时间复杂度进行一个总结成一个公式并且化简。
不同的问题公式不同。
您观察以下式子,每个公后面的列对总体计算结构影响可以忽略不计。
甚至连n项前面的k值也可以忽略不计。
当n值趋近于无穷的时候,两个同阶的公式之比为常数。
加法规则:比如o^2+o,那么就保留o^2即可。
乘法规则:如果是两个式子相乘,那么就都保留。
举个例子,如果o^3+o^2log2n,这是加法规则,该保留哪位呢?
这张图需要背下来
算法的效率如何度量之空间复杂度
课后习题:
四、线性表的定义和基本操作
线性结构也可以默认是线性表
线性结构=(D,R,O) D:数据集 R:关系/结构 O:操作
线性结构也可以看成是线性表,线性表包括数据之间的物理结构中的线性存储、链式存储、索引存储、散列(暂时不要求掌握)
如果我们要设计若干个班长候选人选票信息,那么我们需要设计数据类型和存储结构
现在我们来看第一种线性结构 顺序表
ElemType 数据类型的意思
SqList是什么?
这里静态动态SeqList和SqList只是这个结构体的名字。在main函数中起一个声明线性表的作用。