什么是数据结构
数据对象:类比java的类,例如学生类
数据元素:类比Java对象,例如:李四同学
数据项:类比Java中类的属性,例如:名字:李四,年龄:15
数据结构就是相互之间存在一种或者多种关系的数据元素的集合
数据结构三要素
算法(程序=算法+数据结构)
能够具备有穷性(在又穷时间内可以获得结果)、确定性(相同的输入返回相同的输出)、可见性(可以用代码实现)、输入、输出这五种元素的处理数据的过程叫做算法。
一个健壮的算法需要具备正确性(算法输出的结果是正确结果)、可读性(代码可以被别人理解)、健壮性(能够处理非法数据)、低时间复杂度和低空间复杂度。
时间复杂度
O()就是执行时间虽数据规模增长的变化。
计算方式:需要执行每行代码时间相加,非循环代码执行时间为常数可以忽略不计,只需要关心循环时间即可。时间复杂度相加,只需要取最大值即可。
(例如:O(n)+O(log2^n)=O(n),n^2+200n+3=O(n^2))
空间复杂度
普通程序:所占空间与数据规模的关系
递归程序:递归深度