算法:解决问题的方法和步骤
算法的描述
自然语言
流程图
伪代码 :类语言
程序代码
算法是解决问题的方法和过程,程序是对算法的具体实现
程序=数据结构+算法
算法特性(5)
有穷性
确定性
可行性
输入
输出
算法设计要求
正确性(Correctness)(通常以第三层意义上的正确性衡量)
可读性(Readablity)
健壮性(Robustness)
高效性(Efficiency)
算法的时间复杂度
T(n)=O(f(n))
n越大算法执行时间越长
排序:n为记录数
矩阵:n为矩阵阶数
多项式:n为多项式项数
集合:n为元素个数
树:n为树的顶点个数
图:n为图的顶点数或边树
渐进空间复杂度
S(n)=O(f(n))
n为问题的规模(或大小)
算法要占据的空间
算法本身要占据的空间,输入/输出,指令,常数,变量等
算法要使用的辅助空间