什么是数据结构?
数据结构(data structure)是计算机数据存储、组织的方法。好的数据结构能够带来最优效率的算法。
数据结构包括逻辑结构和物理存储结构。
解决问题的效率,跟数据的组织是相关。打个比方,根据某个书名找数的效率不一样,一个图书馆的书本随意摆放,一个图书馆的按图书类别和字母顺序摆放,后者效率远高于前者。
递归:一种算法,函数过程/子过程在运行过程中调用自身,直到引用的对象已知。
解决问题的效率,跟空间的利用效率相关。
循环输出0-N 用for循环,和用递归(判断N>=0,输出N-1)效率是不一样的,递归每次调用自身,会占用新的空间来存储新的数据。
解决问题的效率,跟算法的巧妙程度有关。
抽象数据库类型(Abstract Data Type)
数据类型包括数据对象集和数据集合相关联的操作集。
抽象:描述数据类型的方法不依赖于具体实现,比如无关数据存储的物理结构和无关实现操作的变成语言。
什么是算法?
算法是一个有限的指令集,接受输入/没有输入,但至少有一个输出,在有限的步骤后停止。
分析算法的效率:平均复杂度、最坏情况复杂度(更适合分析)。
函数和复杂度的关系图
for循环复杂度等于循环次数*循环代码复杂度
if判断复杂度取决于三者之间复杂度最大的