一.什么是算法?
程序= 数据结构 + 算法
数据结构:现实的问题信息化,存进计算机,并对其进行操作
例如,去医院挂号,需要实现队头元素出队,新元素入队等操作
算法:如何处理信息,如何解决实际问题
例如,军人,残疾人士优先,需要将他们的号排在前面
二.算法的五大特征
2.1有穷性
算法在执行一定有穷步之后结束,不会一直算下去
注意:算法有穷,程序则可以无穷
还是上面的例子,军人优先这个算法,在有限次对比后,完成其任务。而挂号系统就是一个程序,只要不关闭,就一直运行。
2.2确定性
相同的输入只能产生相同输出
2.3可行性
算法中的操作都可以通过已经实现的基本运算执行有限次来实现
2.4输入和输出
一个算法可以有0个或多个输入,可以有1个或多个输出
三.好算法具备的特质
- 正确性:正确的解决问题
- 可读性:方便人们理解,可以用伪代码表示,也可以用文字。重点是“无歧义”
- 健壮性:输入非法数据时,能适当处理或做出反应
- 高效率:执行速度快,时间复杂度低
- 低存储量需求:不费内存,空间复杂度低