算法学习笔记 (01)算法的一些基本概念

算法:

算法——问题程序化解决方案

一:算法的三要素:操作、 控制结构、数据结构。

 操作包括以下内容:

①:加、减、乘、除等算术运算;

②:大于、小于、等于、小于等于、大于等于、不等于等关系运算;

③:与、或、非等逻辑运算;

④:输入、输出、赋值等操作;

 控制结构包括以下了内容:

①:顺序结构:依次执行各操作;

②:选择结构:由条件是否成立来选择操作的执行;

③:循环结构:重复执行某些操作的集合,直到满足某一条件才停止;

④:模块调用:一个模块调用另一个模块(包括直接和间接递归);

   数据结构:

算法处理的对象是数据,数据之间的逻辑关系、数据的存储方式、数据的处理方式就是数据结构;

 

二:算法的基本特征

①:确定性;

②:可行性;

③:有穷性;

④:算法有零个以上输入;

⑤:算法至少有一个输出;

 

三:算法的复杂性分析

  算法复杂性的高低体现在运行算法时计算机所需要的资源的多少上。计算机资源主要分为:时间和空间资源;所以算法的复杂度由分为:时间复杂度和空间复杂度。由于现在计算发展水平的提升,时间复杂度更为程序员所关注。

  算法分析是指对算法的执行的时间与所需要空间的估计定量,给出运行算法所需要的时间和空间的数量级;

  一个算法的时间复杂度是指算法的运算时间。一个算法的运行时间取决于算法所需要执行的语句(运算)的多少。算法的时间复杂度通常用该算法执行的总语句(运算)的数量级决定;

  一条语句的数量级即执行它的频数,一个算法的数量级是指它所有语句执行频数之和;

例如:

x += 1; s = s + x;//程序段 1

for (int i =0; i < n; i++){//程序段2   

    x = x + y;

   y = x + y;

 s = x + y;

}

for (int i =0, k = 1; k <= n; k++){//程序段3

   i = i *2;

   for(int j = 0; j < = i; j++){   

  s = s + j;

 }

}

在程序段 1 中,2 条语句个执行一次,总执行2次

在程序段 2 中 , i = 1 ;执行一次, i < n 和 k++ 各执行 n-1 次;循环体中的 3 条语句各执行 n-1次;程序段公执行 5(n-1) + 1 次;

程序段 3 共执行 6*2^n+4n-4 次

空间复杂度:

算法的空间复杂度是指算法运行时的存储空间、是实现算法所需的内存空间的大小;

  

 

posted on 2013-11-26 20:27  DoMee  阅读(474)  评论(0)    收藏  举报