时间复杂度 嵌套循环 内循环 + 外循环

2024-02-09

谁能解释一下这个算法的时间复杂度是多少?

for (i = 1; i <= n; i++){
    for(j = 1; j <= n; j += i) {   // note: not j++
        printf("Iteration %d : %d\n", i, j);   
    }
}

The printf在内循环中称为exactly ceil(n) + ceil(n/2) + ceil(n/3) + ... ceil(n/n)次。为了摆脱ceil, 我们知道ceil(y/n)上面的边界是y/n + 1,所以我们知道执行次数是>= n + n/2 + n/3 ... n/n but is < n + 1 + n/2 + 1 + n/3 + 1 + n/4 + 1... + n/n + 1。前者可以分解为n(1 + 1/2 + 1/3 + 1/4 ... 1/n)后者可以重构为n(1 + 1/2 + 1/3 + 1/4 ... 1/n) + n.

后一个因子是无穷大的第一个加数是谐波级数 https://en.wikipedia.org/wiki/Harmonic_series_(mathematics),这有所不同。第一个的总和k已知维基百科页面中的术语是有界的:

意思就是1 + 1/2 + 1/3 + 1/4 ... 1/n is Ө(ln n) = Ө(log n);我们可以对出现的次数给出严格的限制printf叫做 (c(n): n log n <= c(n) < n log n + 2n. Since n log n增长速度快于2n,我们可以只保留前者,并注意到两个边界都属于Ө(n log n)因此c(n)属于Ө(n log n)还有(Ө(F)意味着该函数既是Ω(F) and O(F)).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时间复杂度 嵌套循环 内循环 + 外循环 的相关文章

随机推荐

  • Java 流具有多个不同的属性

    我在流中有以下对象 class Foo String a String b int c 我想根据以下条件过滤流 例如 流中有条目 foo1 and foo2 foo1 and foo2具有相同的值a and b 但它们的不同之处在于c财产
  • 下面代码的时间复杂度?

    有人可以告诉我以下代码的时间复杂度吗 include
  • 使用 Jquery 的多级下拉菜单

    我想使用 jQuery 设计一个多级菜单 我已经写了一些代码 你可以看demohere http jsfiddle net 24ZvL 这一切都运行良好 但我想动态制作多级下拉菜单 Script ul menu gt li hover fu
  • Android getContext 在后台服务上

    我正在尝试创建一个Service即使我的应用程序关闭 它也会运行 但是 我需要使用我的应用程序Context里面这个Service 当应用程序运行时 该服务也可以工作 但是当我关闭应用程序 调用了 onDestroy 时 getContex
  • Safari 上的 facebook 应用程序 iframe 登录问题

    我有一个使用 iframe 的 Facebook 应用程序 facebook 在 iframe 中加载我的网站 当我单击链接时 我的网站会显示一个 iframe 使用 lightbox 来显示 Facebook 登录信息 在 ff 即 ch
  • 将访问令牌存储在客户端浏览器的会话存储中是否安全?

    我正在 Web API 中使用基于令牌的身份验证来对用户进行身份验证 我正在使用客户端浏览器会话存储来存储访问令牌 这样做安全吗 我应该把它存放在哪里才能更安全 btnLogin click function ajax Post usern
  • 我的 jQuery 切换类函数正在触摸屏设备上创建超链接效果

    当鼠标悬停在我的网站标题上时 我使用 jQuery 添加了 css 过渡效果 使其从透明背景变为白色背景 添加附加类时 我在触摸屏设备上遇到了一个非常奇怪且意想不到的问题 active 我只能假设这种情况发生在所有触摸屏设备上 因为我只有
  • 在每个循环中从 ArrayList 中删除对象

    我想从一个对象中删除一个对象ArrayList当我完成它时 但我找不到方法 尝试像下面的示例代码一样删除它是行不通的 我怎样才能到达当前的迭 代器px要删除这个循环中的对象吗 for Pixel px pixel if px y gt gH
  • 我应该选择哪个 C++ 信号/槽库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在不使用 QT 的项目中使用信号 槽库 我有非常基本的要求 使用任意数量的参数连接两个函数 信号可以
  • 删除不与 JpaRepository 一起使用的内容

    我有一个 spring 4 应用程序 我试图从数据库中删除实体的实例 我有以下实体 Entity public class Token implements Serializable Id SequenceGenerator name se
  • Delphi多线程文件写入:I/O错误32

    我创建了一个类 用于在文本文件中写入线程安全日志 使用CriticalSection 我不是 CriticalSection 和多线程编程 和 Delphi 的专家 我肯定做错了什么 unit ErrorLog interface uses
  • Spring Security 401未经授权,即使有permitAll

    我正在使用 Spring security 来保护 REST 服务中的某些端点 这是安全配置类 Configuration EnableWebSecurity EnableGlobalMethodSecurity securedEnable
  • 如何保存 LibSVM python 对象实例?

    我想在其他计算机上使用这个分类器 而不必再次训练它 我曾经使用 cPickle 从 scikit 保存一些分类器 对 LIBSVM 做同样的事情 它给了我一个 ValueError 包含指针的 ctypes 对象不能被腌制 我正在使用 Li
  • ASP.NET 用户控件类库

    是否可以创建包含 UserControls 的类库以便我可以重用它们 如果是这样 怎么办 标记是否与 dll 一起编译 谢谢你的帮助 您可以编译两者UserControls and Page进入类库 因为最终 这就是您的网站发布后发生的情况
  • 具有颜色渐变的 UIBezierPath

    我有一个关于 UIBezierPath 的问题 例如我有这条路径 现在我想要从白色到红色的颜色渐变 从左到右 这是我的代码 UIBezierPath bezierPath bezierPath UIBezierPath bezierPath
  • 使用 RVM 时如何安装 Ruby gems?

    我设置了 RVM 并用它来安装 Ruby 和其他一些库 当我浏览各种教程和其他技术 如 Rails 的设置时 我开始对我应该通过 RVM 做什么以及我应该按照教程建议做什么感到困惑 此处的 RubyGems 教程就是一个示例 http ru
  • scrapy如何制作自己的调度程序中间件

    我正在使用 Python 2 7 和 Scrapy 0 20 我的问题 如何构建我自己的调度程序 我尝试过的 我通过互联网阅读并发现了这一点 我必须创建自己的 python 类并使用 SCHEDULER MIDDLEWARES 在设置中分配
  • 生成不连续重复的随机数

    如何生成 0 4 之间的随机整数 并且不会连续两次生成相同的数字 例如 如果第一次生成的数字为3 则第二次随机生成的可能数字为0 1 2 4 如果第二次生成2 则第三次随机生成的可能数字为0 1 3 4 以此类推 int oldrand
  • Spring saml - 在 SP 上发起登录时如何记住请求参数,并在 IdP 响应后处理它们

    我想记住我的网站 SP 的第一个请求中的 url 请求参数 并在 IdP 响应后使用它们 我正在使用 spring saml 扩展并考虑 relayState 属性 但找不到如何使用请求中的参数构建它的示例 我需要在 sso 身份验证过程后
  • 时间复杂度 嵌套循环 内循环 + 外循环

    谁能解释一下这个算法的时间复杂度是多少 for i 1 i lt n i for j 1 j lt n j i note not j printf Iteration d d n i j The printf在内循环中称为exactly c