算法基础知识-期末

本文介绍了算法的基础知识,包括算法的定义、五个重要特性:确定性、可行性、输入、输出和有限性。同时,阐述了计算过程与穷举法作为算法设计的例子。还探讨了算法复杂性,分为时间复杂性和空间复杂性,并列举了常见的时间复杂度表示,如O(1)到O(n!)。最后,提到了时间复杂度分析的步骤以及如何分析算法的空间复杂性。
摘要由CSDN通过智能技术生成

算法定义
*算法是解决某一特定问题的一组有穷指令的序列。
*算法是完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据,经过有限次运算,能够得出所要求 或期望的终止状态或输出数据。

算法的五个重要特性
确定性、可行性、输入、输出、有限性
*确定性:算法的每种运算必须要有确切的定义,不能有二义性。

例:不符合确定性的运算
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++)          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值