一、概念:算法是由有限序列组成用来解决问题的指令.
算法=控制指令+基本操作.
定义一个算法需要:人类语言、伪代码、流程图、程序语言。
二、设计一个算法的基本要求
Finiteness :算法的步骤必须是有限的;
Definiteness :程序语言清晰,有明确的执行步骤;
Input :有大于等于零步的输入;
Output :有至少一步的输出;
Feasibility :算法必须可实现。
三、设计一个算法的基本原则
Correctness :算法步骤必须是正确的 ;
Readability :语句易懂,可读性强;
Robust :具有武装性,即使用户输入非法数据算法也可识别;
时间上的高效性空间上的低内存。
四、分析算法
1、 空间复杂度
2、 时间复杂度:计算时间
· 影响执行时间的因素:
① 计算机执行命令的速度
② 由编译器生成机器语言的质量
③ 程序语言
④ 问题的规模
⑤ 算法所挑选的方法
3、 O(f(n))表示法
当“问题的规模(由n表示)”是唯一的解决办法,如果随着n的增长,执行时间的增长速率与f(n)一样,那么我们表示它为:T(n)=o(f(n))。
f(n):通常为基本操作的最大执行时间。
基本操作:一把在最内层的循环中列出。