算法的基本概念
什么是算法:程序=数据结构+算法
举例:
1:海底捞排队系统的数据结构
队头元素入队
新元素入队
输出队列长度
交换i号和j号的位置
算法的5大特性
-
有穷性:就是执行又穷步后结束,每一步在有穷时间内完成。(算法是有穷的,程序是无穷的。
-
确定性:相同输入,相同输出
-
可行性:算法中的操作是通过已经实现的基本运算执行有限次实现
-
输入(零个或多个)
-
输出(一个或多个)y=f(x):x是输入,y是输出,f是一种映射关系可以理解为一种算法
算法的特质
-
正确性:可以正确的解决问题。
-
可读性:良好的可读性,便于理解。
-
健壮性:当输入非法数据时,可以做出适当处理。
-
高效率,低存储。 (执行速度快,时间复杂度低)
注意:算法可以用伪代码表示,但必须无歧义描述解决问题的步骤
-
时间复杂度
事前预估算法时间开销T(n)与问题规模n的关系
频度:是指语句在算法中被重复调用的次数,算法中所有语句的频度之和为T(n)
举例:计算该程序的时间复杂度
只取高阶部分阶数的比较从小到大
运算规则:
例题:采用极限的思想