我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

关于#时间复杂度#的问题,如何解决?

下列程序段的时间复杂度是



int  sum = 0;
for(int i=1;i<n;i*=2)
    for(int j=0;jsum++;


A.
O(logn)

B.
O(n)

C.
O(nlogn)

D.
O(n
2
)

C
外层是logn,内层是n

B,是O(n)的。

设2^k<=n<2^(k+1),其中k的值随n而定

则题意即求1+2+4+...+2^k=2^(k+1)-1

2^(k+1)-1最多为2^k的两倍不到,即n的两倍不到

所以时间复杂度为O(n)

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7803236
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:关于时间复杂度

近期文章

  • 关于gdp数据库和人口变化的数据库
  • netgen软件运行不了
  • 正则表达式提取子串
  • cocos creator 2.4 node.on node.off 关闭监听
  • 请问#ifndef定义的宏可以重名吗
  • python学生成绩管理系统求元码
  • 不太懂为什么要先相加
  • 怎样避免太阳透过地图照到模型上
  • 关于路由协议isis的cost类型
  • 将retinanet和HEM(难例挖掘)相结合2
  • 谁来回答一下面关于C语言的三个问题?
  • anconda怎么编辑修改原py并保存
  • 预测在共享内存中存储数据所需的大小
  • 关于#vscode#的问题:配置好php环境后使用vscode依然找不到php
  • arm 架构的linux nginx-rtmp启动不了
  • Rocket Mq 消息过期 导致消息丢失无法消费
  • c3p0资源管理器属性名
  • 安装netifaces库报错
  • 双支线耦合器的匹配问题
  • idea报不知名错误

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华