求时间复杂度的方法 - 范文中心

求时间复杂度的方法

08/28

求时间复杂度的方法

1.求和法

当算法中语句的执行次数与某一变量有直接关系,而该变量的变化起止范围又较为明确,则可以利用求和公式得出最大的语句频度f(n),再对其取数量级(阶)即可。

例1有算法如下:

①for(i=1;i

解:以上算法中频度最大的是语句③,它的执行次数跟循环变量i和j有直接关系,因此其频度可以通过求和公式求得:

所以,该算法的时间复杂度为平方阶,记作T(n)=O(n2)。例2有一算法如下:

①for(i=1;i

解:以上算法中频度最大的是语句④,其频度可以通过求和公式求得:

所以,该算法的时间复杂度为立方阶,记作T(n)=O(n3)。例3有如下算法:

①y=0;

②while((y+1)2

解:算法中频度最大的应该是语句③,它的执行次数与y有关,已知y初值为0,当(y+1)2>n时循环终止,则y的最大取值应该为

n姨-1。所以语句③的频度可以通过求和公式得到:

所以,该算法的时间复杂度记作

2.假设法

在某些较为复杂的算法中,循环结构的循环次数很难直接看出,特别是当循环次数与循环体中的某些语句执行有联系时,语句频度的计算变得比较困难。此时,可以先假设循环执行次数为k次,再对算法进行分析,根据循环终止条件求出语句频度f(n),最后求出T(n)。 例4有一算法如下:

x=91;y=100;while(y>0)

if(x>100){x-=10;y--;}elsex++;

解:假设while循环的循环体执行k次,可以发现:k=1时,x=92,y=100k=2时,x=93,y=100k=3时,x=94,y=100

k=10时,x=101,y=100k=11时,x=91,y=99

k=22时,x=91,y=98

由分析可知,每循环11次,y的值发生一次变化,y需共变化100次。所以,f(n)=100*11=1100。则该算法的执行时间是一个与问题规模n无关的常数,它不随着问题规模n的增加而增长,即使算法中有上千条语句,其执行时间也不过是一个较大的常数。因此,该算法的时间复杂度为常数阶,记作T(n)=O(1)。

例5有如下算法:

i=s=0;while(s

解:假设循环执行k次,则有:

k=1时,i=1,s=0+1k=2时,i=2,s=0+1+2k=3时,i=3,s=0+1+2+3

执行到k次时,。

由于s

,所以

,该算法的时间复杂度

3.迭代法

当算法中包含递归函数时,其时间复杂度也会被转化为一个递归方程,上述两种方法此时不再适用。递归方程的形式多种多样,其求解方法也是不一而足,比较常用是迭代法。其基本步骤是迭代地展开递归方程的右端,使之成为一个非递归的和式,然后通过对和式的估计来得到时间复杂度T(n)。

例6有如下算法:

voidfun(inta[],intn,intk){inti;

if(k==n-1)

for(i=0;i

{for(i=k;i

解:设fun(a,n,k)的执行时间为T(k),由算法可以得到时间复杂度的递归关系如下: 则:

所以,该算法的时间复杂度T(n)=O(n2)


相关内容

  • 20**年高级项目管理师复习题
    高级项目管理师1-基础知识 高级项目管理师复习题 一.项目启动: 1.项目:受时间.费用和质量资源约束 大型项目:战略目标 相关项目和子项目 项目组合:控制.协调和整体最优效果 2.项目管理的目的:项目组合值最大 复杂项目管理:选择 评估 ...
  • 复杂性科学对会计研究的方法论意义
    摘要:复杂性是指涌现性属性不可由确定性图灵机上的多项式时间算法归约到低层组分属性与运动规律的系统认识论特征.由于认知的反身性,社会系统逻辑地具有其普遍规律不可解的复杂性特征,并决定了社会经验的历史性与不可测性,导致对社会规律的经验检验的不可 ...
  • 数据结构导论试题1
    全国2004年10月高等教育自学考试 1.要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为( ) A.逻辑结构.存储结构.机外表示 B.存储结构.逻辑结构.机外表示 C.机外表示.逻辑结构.存储结构 D.机外表示.存储结构. ...
  • 项目成功的12个关键原则
    项目成功的12个关键原则 1.项目经理必须关注项目成功的三个标准 简单地说,一是准时:二是预算控制在既定的范围内:三是质量得到经理和用户们的赞许.项目经理必须保证项目小组的每一位成员都能对照上面三个标准来进行工作. 2.任何事都应当先规划再 ...
  • 俄罗斯方块
    程序设计实践设计报告 课题名称: 学生姓名: 班 学 日 级: 号: 期: 班内序号: 双人俄罗斯方块游戏程序 陈宸 2013211113 12 2 0 1 3 21 0 3 75 2015.6.13 1.课题概述 1.1 课题目标和主要内 ...
  • 第三讲 数据收集方法的选择
    第三讲 数据收集方法的选择 在确定了抽样调查作为我们研究的样本选取方式后,接下来的问题是,究竟什么样的数据收集方法是最为合适的.迄今为止,三种最为普遍的收集数据的方法是邮寄式调查.电话调查和面访调查.近十年来,随着计算机辅助调查的崛起,互联 ...
  • 简单快速的平面散乱点集凸包算法_金文华
    1999年2月 第25卷第1期北京航空航天大学学报 Journal of Beijing University of Aeronautics and Astronautics February 1999Vol . 25 No . 11) 简 ...
  • 数据结构试卷(附答案)
    计算机专业数据结构试题 一.单选题(每小题2分,共12分) 1.在一个单链表HL 中,若要向表头插入一个由指针p 指向的结点,则执行( ) . A . HL =p : p 一>next=HL B . p 一>next=HL :H ...
  • 多核集群任务分配问题复杂性分析
    第2期2012年2月 电子 学 报 V01.40No.2 ACTAELECrRONICASINICAFeb.2012 多核集群任务分配问题复杂性分析 谭国真,杨际祥,王凡,潘 摘要: 东 (大连理工大学计算机科学与技术学院,辽7夫连1160 ...
  • 论奥运备战与参赛的关系
    摘 要:备战与参赛是奥运"金牌系统"最重要的两个构成要素.概括和揭示奥运备战与参赛的关系,本质上就是要说明奥运备战与参赛之间及其内部诸要素之间的相互影响.相互作用和相互制约的根本属性.深刻辨析和解读奥运备战与参赛间的关系 ...