算法定义
*算法是解决某一特定问题的一组有穷指令的序列。
*算法是完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据,经过有限次运算,能够得出所要求 或期望的终止状态或输出数据。
算法的五个重要特性
确定性、可行性、输入、输出、有限性
*确定性:算法的每种运算必须要有确切的定义,不能有二义性。
例:不符合确定性的运算
5/0
将6或7与x相加
未赋值变量参与运算
*可行性:算法中有待实现的运算都是基本的运算,原理上每种运算都能由人用纸和笔在有限的时间内完成。
例:整数的算术运算是“能行”的
实数的算术运算是“不能行”的
*输入:每个算法有0个或多个输入。这些输入是在算法开始之前给出的量,取自于特定的对象集合。
*输出:一个算法产生一个或多个输出,这些输出是同输入有某种特定关系的量。
*有限性:一个算法总是在执行了有穷步的运算之后终止。
计算过程:只满足确定性、能行性、输入、输出四个特性但不一定能终止的一组规则。
算法设计的例子—穷举法
穷举法:是从有限集合中,逐一列举集合
的所有元素,对每一个元素逐一判断和处
理,找出问题的解。
算法复杂性分析
算法复杂性:算法运行所需要的计算机资源的量
时间复杂性:需要时间资源的量
空间复杂性:需要空间资源的量
运行时间T(n)的估算
void childen_question(int n,int &k,int g[],int m[],
int s[])
{
int a,b,c;
k=0; //1
for(a=0; a<=n; a++)