程序时间复杂度计算 i=-1; s=0; while(s<n) { i=i+

程序时间复杂度计算 i=-1; s=0; while(s<n) { i=i+,第1张

时间复杂度为O(n^05),即根号n的数量级。该程序求解的是:s=1+3+5+7++(2k+1),且使得s-(2k+1)<n≤s。而s=(1+(2k+1))(k+1)/2=(k+1)^2,k+1则为上述等差数列的项数,也是你的程序中while循环执行的趟数。求出k<根号n≤(k+1),因此循环执行根号n趟。则T(n)=2+5n^05+1,解释一下T(n)这个式子,第一项2表示最开始的2个赋值 *** 作;第二项中n^05表示循环的趟数,前面的系数5表示每趟有5个基本 *** 作:一次循环条件判断、两次加法、两次赋值;第三项的1表示最后的一次循环条件判断(因不满足条件但没执行该趟循环)。所以T(n)=5n^05+3,所以O(T(n)=O(5n^05+3)=O(n^05)。

算法的时间复杂度是指用来方便开发者估算出程序的运行时间。

我们该如何估计程序运行时间呢,我们通常会估计算法的 *** 作单元数量,来代表程序消耗的时间, 这里我们默认CPU的每个单元运行消耗的时间都是相同的。

假设算法的问题规模为n,那么 *** 作单元数量便用函数f(n)来表示。随着数据规模n的增大,算法执行时间的增长率和f(n)的增长率相同,这称作为算法的渐近时间复杂度,简称时间复杂度,记为 O(f(n))。

在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1),另外,在时间频度不相同时,时间复杂度有可能相同。

时间复杂度为O(n^1/2)。

在循环中i每次自增1,s是求前i项的和,根据等差数列求和公式s=i(i+1)/2,循环结束的条件是s<=n,也就是i(i+1)/2<=n,所以i是与n的1/2次方成正比的,因此得出结论。

当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。while语句的一般表达式为:while(表达式){循环体}。

扩展资料:

WHILE <条件>

<语句体>

end while

do while <条件>

<语句体>

loop

while(<条件>) {<语句;>}

do {<语句;>} while(<条件>);

二者的区别是do-while最少会被执行一次。

循环中可以使用continue结束当前循环,回到循环开始处开始下一次循环。也可以用break跳出整个循环。

以上就是关于程序时间复杂度计算 i=-1; s=0; while(s<n) { i=i+全部的内容,包括:程序时间复杂度计算 i=-1; s=0; while(s<n) { i=i+、算法的时间复杂度是指什么、有一程序片段:{i=0;s=0;while(s<=n){i++;s=s+i;}},其时间复杂度是等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9324914.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存