《大话数据结构》读书笔记系列(二)---- 算法

     第二部分直接讲算法?其实没那么快的,只是算法的一点点入门级别的知识点。

1、算法:解决特定问题求解步骤的描述,在计算机中表现为指令的有序序列,并且每条指令表示一个或多个操作。

2、算法的四个基本特性:

    1)具有零个或多个输入,至少有一个输出。

    2)算法在执行有限的步骤之后,自动结束而不会出现无线循环,并且每一个步骤在可接受的时间内完成。

    3)每一步骤都具有确定的含义,不会出现二义性。

    4)每一步都必须是可行的。

3、算法的效率:

    求1+2+3+......+100=?,有两个算法如下: 


int i, sum = 0, n = 100;
for(i = 1; i <= n; i++){
    sum = sum + i;
}
printf("%d",sum);
int sum = 0, n = 100;
sum = (1 + n) * n / 2;
printf("%d", sum);
第一段程序执行了2n+3次,第二段执行了3次,可见第二段程序的效率要远远高于第一段。


4、判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注主项的阶数。

5、O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)

6、一般在没有特殊说明的情况下,都是指最坏时间复杂度。

你可能感兴趣的:(Algorithm)