什么是算法?程序和算法的区别
算法的理解
- 数学角度
算法是对于一个问题,对于输入经过有限次的运算组合后,得到最优解的过程。
- 计算机角度
算法是对于输入问题,通过一系列的计算机操作指令组合,得到一个符合预期输出结果的方法
算法的特点
- 有始有终
一个算法必须是既有输入又有输出的
- 正确性
算法需要在输入之后得到一个满足预期的输出结果
- 有限性
算法的操作次数是有限的,即在有限次的操作后一定会得到一个符合预期的结果
- 鲁棒性
一个算法能够接受所有可能的输入,而得到一个符合要求的输出
- 易用性
算法在满足输入条件的前提下,要满足运行时间尽可能短,占用内存尽可能小
衡量算法好坏的标准
- 时间复杂度
算法执行有限次操作得到预期输出结果所花费的时间,所花费的时间越少越好
- 空间复杂度
算法程序在运行的时候所占用的内存的大小
算法与程序的关系
-
算法的实现需要借助编程语言来在计算机上运行而产生需要的输出
-
一个算法的好坏与输入的大小,编程语言的设计,编译的环境等有很大的关系