数据结构 语句频度和时间频度怎么算

int i=1,j=1;
while(i<=n&&j<=n)
{#i=i+1;j+j+i;}
求#号这段的语句频度和时间频度

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。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-12
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。本回答被提问者和网友采纳
相似回答