赞
踩
定义:在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程,通俗说,算法指解决问题的方法或过程。
三要素:算法由操作、控制结构、数据结构三要素组成。
算法分析的目的:1.为了对算法的某些特定输入,估算该算法的内存空间和运行时间。2.为了建立衡量算法优劣的标准,用以比较同一类问题的不同算法。
输入:需要处理的数据
输出:算法执行完毕得到的结果
算法步骤:把输入转化为输出的步骤
自然语言:不精确但直观
伪代码:精确且通用,但不能运行
代码:精确,可以运行,但没有通用性
基本要求:正确性和可读性。
1、输入:算法具有0个或多个输入
2、输出:算法至少有1个或多个输出
3、有穷性:算法在有限的步骤之后会自动结束而不会无线循环,并且每一个步骤可以在可接受的时间内完成
4、确定性:算法中的每一步都有确定的含义,不会出现二义性
5、可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成
一个算法的优劣可以用时间复杂度和空间复杂度来衡量。
定义:是指算法在运行过程中所需要的时间和空间资源的多少,所需资源越多,算法复杂性越高。
一般情况下,算法中的基本操作语句的重复执行次数是问题规模 n 的某个函数,用 T(n)表示,若有某个辅 助函数 f(n),使得当 n 趋近于无穷大时,T(n) / f(n) 的极限值为不等于零的常数,则称 f(n)是 T(n)的同数量级函数。 记作 T(n)=O( f(n) ),称O( f(n) ) 为算法的渐进时间复杂度,简称时间复杂度。
主定理
递归树
递归方程
定理一:
定理二:函数的阶之间的关系具有传递性
定理三:算法的时间复杂度是各步操作时间之和,在常数步的情况下取最高阶的函数即可
对数函数的阶低于幂函数的阶,多项式函数的阶低于指数函数的阶.
迭代求时间复杂度
解 T(n)=2^n-1(迭代算出
迭代法求递推方程
迭代法求递推方程
换元迭代
递归树是迭代计算的模型;递归树生成过程与迭代过程一致;递归树上的所有项恰好是迭代之后产生和式中的项;对递归树上的项求和就是迭代后方程的解
即递归树是迭代的图形表述,递归树的生成规则是用右部形成二层子树来不断替换左部。
此处应用:递归树求时间复杂度
每一层都是n,一共有k层 故时间复杂度是 n*k
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。