数据结构计算语句频度
数据结构 计算语句频度
首先x++,执行到x=101时执行了10次,执行一次x-=10;y--;y=99,x=91;该语句执行了1次。
然后继续上述循环,当x++执行10次后,又执行一次x-=10;y--;然后又回到x=91,这时y=98了。
要让y<0,x-=10;y--;语句一共要被执行100次;而x++则被执行1000次。
《计算机数据结构》这个语句频度怎么算的?
最外面的for要执行n次,第二层的for要执行n次,因此括号内的语句会执行n^2次。有两条语句,每个都是n^2,则这两个语句的频度就是 2n^2
简单算法语句频度题
算法上的次数可以把它看成多少句,因为for循环,所以主要看for来回循环了多少次。把for (int j = n; j >= n; j--) 这个看成三次毫无意义。
打个比方for(i=0;i<n;i++){x++;} ,这个可以看成执行了n次,时间复杂度为O(n),
如果是for(i=0;i<n;i++){for(j=0;j<m;j++){x++;}},这个就执行了n*m次,时间复杂度为O(n*m)。
数据结构 语句频度和时间频度怎么算
int i=1,j=1;
while(i<=n&&j<=n)
{#i=i+1;j+j+i;}
这个j+j+i;就是j=j+i;吧
这个可以假设这条语句执行了k次,此时i=k+1;j=1+k(k+3)/2;
循环结束条件是:i<=n&&j<=n;所以可以知道:
把条件代进去可得:
k=(-3+sqrt(8n+1))/2;sqrt代表开根号;
所以语句频度就是k;时间复杂度就是根号n。
在学数据结构中,如何计算语句的频度???
一是可以直接求次序(看循环)! 二平均法去求:把所有次序加起来除以n或n+1(看题了) 找到最消耗时间的那个句子在运用上面的基本都解决了
数据结构中关于语句频度计算
具体有递归公式
An=An-1+n*(n+1)/2 //计算次数
A1=1
因此An=1/2(∑(n^2)+∑n)
=1/2(n(n+1)(2n+1)/6+n(n+1)/2)
=n(n+1)(n+2)/6
所以时间复杂度是O(n^3)
计算程序的频度和时间复杂度
频度就是语句执行的次数,这个问题是:
时间复杂度就是将频度趋于无穷大时的阶次,忽略掉低次和常量,这个问题就是O(n^2),即平方阶次的
C语言计算语句频度问题
这个题目总体上是看while循环。
i+j<=n;
=1 + 0 <= n;
也就是说1 <= n; 这个就是从 1~ n;所以是n次也就是时间维度是n。
求下列程序的执行频度。*主求思路,和计算方法
自己在电脑上试了一下,貌似无解啊
时间复杂度和语句频度有什么区别?(数据结构问题)望高手指点!!谢谢!
1.频度计算:
int sum1(int n){
int p=1,sum=0,i; //频度:1(或3,总之是个常数与n无关)
for(i=1;i<=n;i++){ //频度:n+1
p*=i; //频度:n
sum+=p; //频度:n
}
return(sum); //频度:1
}
该函的执行频度为:3n+3(或3n+5)
2.时间复杂度计算
依据“频度”可知该函数为n的一次方,可表示为O(n),也可表示为Θ(n);后者更准确。
3.(补充)求“时间复杂度”是目的,“频度”仅是手段,前者要依据后者的计算。
4.(补充)求算法的“时间复杂度”是为了估计和比较不同算法处理同一问题时的效率,只“估计”即可,不必也不可能准确得出计算时间(涉及不同硬件、系统软件和编译系统等)
5.(补充)算法的时间复杂度计算问题涉及渐近符的使用,去看专门的算法分析书籍。其中有两个重要规则:忽略低阶,忽略系数。
6."3n+3"与"3n+5"问题,当n很大时,执行的时间与+3还是+5无关。也就是"忽略低阶"。
数据结构计算语句频度:等您坐沙发呢!