一,算法
算法:解决特定问题求解步骤的描述。在计算机中表现为指令的有限序 列,每条指令可表示一条个或多个操作。
二,算法具有五个特性
- 输入:算法具有零个或多个输入。
- 输出:只有一个或多个输出。
- 有穷性:算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且一个步骤在可接受的时间内完成。就是不会出现死循环。。。
- 确定性:每一个步骤都有确定含义,不会出现二义性
- 可行性:每一步都能够通过执行有限次数完成 。
总结一下就三点:正确;能完结;无二义性。
三,度量一个算法的好与坏——–时间复杂度和空间复杂度
算法的时间复杂度和空间复杂度统称为算法的复杂度。
- 时间复杂度:
(1)时间频度:一个算法中语句执行次数,记为T(n)。
时间复杂度实际上就是一个函数,该函数计算的是执行基本操作的次数。一个算法语句的执行次数是关于问题规模n的某个函数,我们把它记为f(n),n就是问题的规模。当问题规模N变化时,T(n)也在变化,算法执行次数的增长速率和f(n)的增长速率相同,即T(n)=f(n)。当n趋于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则成f(n)是T(n)的同数量级函数,记作T(n)=O(f(n)),称O(f(n))为时间复杂度的O渐进表示法,也就是时间复杂度。
(2)最好,最坏和平均算法复杂度:
最好情况下:任意输入规模下的最大运行次数(上界)。 <