文章目录
算法定义
一般认为,算法是由若干条指令组成的有穷序列,具有下列五个特性:
- 确定性:每条指令都是明确的、无二义的
- 能行性:每条指令都必须是能够执行的
- 输入:允许有0个或多个输入量,取自特定的集合
- 输出:产生一个或多个输出,它(们)与输入量之间存在着某种特定的关系
- 有穷性:每一条指令执行的次数都是有穷的
注:如果不满足有穷性,满足前4条,则称为计算过程,操作系统OS就是计算过程。
算法好坏的衡量尺度
- 问题规模:输入数据量的测度
- 基本运算:解决给定问题时占支配地位的运算
- 算法的计算量函数:时间复杂度T(n)
渐近时间复杂度
指的是当问题的规模趋于极限情形时(相当大)的时间复杂度,由三种表示记号:O,Ω,Θ
T(n)= O(f(n))
- 定义:若存在c > 0,和正整数n0 ≥1,使得当n≥n0时,总有T(n)≤c*f(n)
- 给出了这个算法时间复杂度的上界,也就是说复杂度不可能比c*f(n)大
- 可以用小于号 < 来理解,也就是说一个算法的复杂度一定<c*f(n)