下面程序段的时间复杂度为( A)。 i=s=0; while(s<n){

下面程序段的时间复杂度为( A)。 i=s=0; while(s<n){,第1张

i=s=0;    //时间复杂度是O(1)

while(s<n){ //时间复杂度是O(n)

i++;         //时间复杂度是O(n)

s+=i;        //时间复杂度是O(n)

}

//累计时间复杂度是O(1+n+n+n),即O(n)

如有疑问请追问,如您,谢谢

时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数

程序

S=0; -------这里是常数O(1),

for(i=0;i<n;i++)

for(j=0;j<n;j++)

s+=b[i][j]; ----这里是n的平方,用平方阶表示O(n^2)

sum = s;-------这里是常数O(1)

所以上述时间复杂度是T(n) = 两个常数O(1) + n的平方,两个常数相对n的平方来说是低阶项去掉,即常数阶可以去掉忽略不计。

最终时间复杂度是T(n) = O(n^2)

一、O(n) : n次循环内执行两条命令, 总计2n忽略常数则O(n)

二、O(n^2) : n次循环内, 第i次循环执行i条命令, 则时间复杂度为O(1+2+3+n), 则为O(n(n+1)/2)忽略常数为O(n^2)

三、O(n) : 在栈内从n递归到1需要递归n层, 每层执行一次乘法则为O(n)

程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员常被称为程序员。

任何设计活动都是在各种约束条件和相互矛盾的需求之间寻求一种平衡,程序设计也不例外。在计算机技术发展的早期,由于机器资源比较昂贵,程序的时间和空间代价往往是设计关心的主要因素;随着硬件技术的飞速发展和软件规模的日益庞大,程序的结构、可维护性、复用性、可扩展性等因素日益重要。

以上就是关于下面程序段的时间复杂度为( A)。 i=s=0; while(s<n){全部的内容,包括:下面程序段的时间复杂度为( A)。 i=s=0; while(s<n){、下面程序的时间复杂度是、分析以下程序段的时间复杂度,请说明分析的理由或原因。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9294601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存