数据结构:问题的数学模型
算法:处理问题的策略
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作
算法必须满足的五个重要特性:
(1)有穷性:算法必须能在执行有穷步骤之后结束,每一步骤都能在有限时间内完成;
(2)确定性:算法的每一个步骤必须是确切定义的。并且,对于一种输入,算法只有一条执行路径,即对于相同的输入只能得到相同的输出;
(3)可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现;
(4)有输入:作为算法加工对象的量值,通常体现为算法中的一组变量。有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已被嵌入算法之中。
(5)有输出:它是一组与“输入”有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。
算法效率分析:
时间耗费:(渐进)时间复杂度
空间耗费:(渐进)空间复杂度
算法执行期间需要占用的存储空间由3部分组成:
(1) 数据元素集合所占的空间
(2) 程序本身所占的空间
(3) 辅助变量所占的空间(辅助空间)
其中,辅助空间需要分析和评估,用算法的空间复杂度来度量