算法学习笔记 (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 次
空间复杂度:
算法的空间复杂度是指算法运行时的存储空间、是实现算法所需的内存空间的大小;
浙公网安备 33010602011771号