开发者社区 问答 正文

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

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

展开
收起
知与谁同 2018-07-20 19:33:47 8512 分享 版权
1 条回答
写回答
取消 提交回答
  • 阿里云开发者社区运营负责人。原云栖社区负责人。
    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。
    2019-07-17 22:53:01
    赞同 展开评论
问答标签:
问答地址: