算法时间复杂度分析

2024-03-31

您好,我正在尝试分析该算法的时间复杂度,但我很难解开并计算最终循环将执行的次数。我意识到第一个循环是 log(n) 但之后我似乎无法得到一个评估良好的总和。这是算法:

for(int i = 1; i <= n; i = 2*i){
    for(int j = 1; j <= i; j = 2*j){
        for(int k = 0; k <= j; k++){
            // Some elementary operation here.
        }
    }
}

我无法计算出循环 k 一般执行了多少次n

谢谢你的帮助!


它开着)。

1 + 2 + 4 + ... + 2^N == 2^(N + 1) - 1。

对于特定的 j,最后一个循环执行 j 次。

对于特定的 i,内部 2 个循环执行 1 + 2 + 4 + ... + i 次,大约等于 2 * i。

所以总的执行时间是 1 * 2 + 2 * 2 + 4 * 2 + ... + N * 2,大约是 4 * N。

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

算法时间复杂度分析 的相关文章

  • 绘制多边形

    我正在使用 Google Maps API V3 根据路径绘制多边形 该路径是随机未排序坐标点 LatLng 的数组 这会产生以下形状 Polylines intersect Problem 由于多边形的形状取决于路径中点的顺序 因此如何对
  • 将时间添加到日期时间

    我有一个像这样的日期字符串 然后使用strptime 所以就像这样 my time datetime datetime strptime 07 05 15 m d Y 现在我想添加 23 小时 59 分钟my time 我努力了 timed
  • 如何从迭代器推导连续内存

    不知何故 本土stl copy VC Dinkumware 上的算法表明它可以使用memcpy 可以轻松复制的数据 一个凡人能做到这一点吗 假设每个元素都是普通可复制的 random access iterator 是否意味着连续内存 标准
  • 归并排序中递归树的高度log(n)+1是怎么来的

    我按照 stackoveflow 的建议阅读了一些问题和答案 我正在遵循 cormen 的 算法简介 一书进行自学 那本书里已经解释得很清楚了 但唯一没有解释的是如何在合并排序分析中计算树的高度 如果在后面的章节中对此进行解释的话 我仍然在
  • PHP 中的 NOW() 函数

    是否有 PHP 函数以与 MySQL 函数相同的格式返回日期和时间NOW 我知道如何使用date 但我想问是否有专门用于此的功能 例如 返回 2009 12 01 00 00 00 您可以使用date https www php net m
  • Florian 的 Grisu2 算法如何工作?

    我遇到了一个关于将 double 转换为 ascii 的问题 经过搜索 我得到了 Florian 的论文 使用整数快速准确地打印浮点数 http www cs tufts edu nr cs257 archive florian loits
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • JavaScript 数组扩展语法的时间复杂度是多少?

    我想知道在 JavaScript 中使用数组扩展的时间复杂度是多少 是线性 O n 还是常数 O 1 下面的语法示例 let lar Math max nums 传播称为 Symbol iterator 有关对象的属性 对于数组 这将迭代数
  • 为什么我的“While Loop”不打印查找平均“分数”的计算结果?

    我正在编写一个程序来读取用户输入的正整数序列 用户一次只能输入一个整数 然后它将计算这些整数的平均值 当用户输入0时程序结束 0不计入平均值 程序结束后程序将打印出平均值 问题 当我进入 while 循环时 我的代码停止工作 因此它不会计算
  • 如何用约束标记一大组“传递群”?

    在 NealB解决方案之后进行编辑 与以下解决方案相比 NealB的解决方案非常非常快任何另一个 https stackoverflow com q 18033115 answers and 提出了关于 添加约束以提高性能 的新问题 Nea
  • 照片马赛克算法。如何在给定基本图像和瓷砖列表的情况下创建马赛克照片?

    Hy 我要做的是创建一个程序 使用 C 或 C 它将 24 位 像素位图和图像集合作为输入 我必须创建一个马赛克图像 类似于使用库的输入图像给定的图像 创建与输入类似的马赛克照片 到目前为止 我可以访问输入的图像像素及其颜色 但我有点卡住了
  • 有没有时间复杂度为O(N)的排序算法?

    大多数排序算法的复杂度为 O NN 或 O NlogN 来实现结果 但是 对于特定的输入集 有些算法的复杂度为 O N 我想知道是否有一种排序算法在所有情况下都具有 O N 的复杂度 如果您只能比较 检查两个项目是否为 正在排序的值 那么您
  • 如何对对象进行排序? (画家算法)

    所以我有 4 个矩形形状 我正在尝试应用排序算法 画家算法 https en wikipedia org wiki Painter 27s algorithm 来知道我需要先绘制哪些形状 在 3d 中 然后绘制哪个形状 Note 相机位于右
  • 动态规划 (DP) 中的重叠子问题是什么?

    为了使动态规划适用 问题必须具有两个关键属性 最优子结构 and 重叠子问题 1 https en wikipedia org wiki Dynamic programming 对于这个问题 我们只关注后一个属性 有各种不同的定义重叠子问题
  • 我正在尝试寻找“调酒师算法”

    我正在解决旧编程竞赛中的一些示例问题 在这个问题中 我们输入了我们有多少调酒师以及他们知道哪种配方 每杯鸡尾酒的制作时间为 1 分钟 我们需要计算是否可以在 5 分钟内使用所有调酒师完成订单 解决这个问题的关键是尽可能高效地分配鸡尾酒 这就
  • 将名称字符串编码为唯一的数字

    我有一大堆名字 数以百万计 他们每个人都有一个名字 一个可选的中间名和一个姓氏 我需要将这些名称编码为唯一代表这些名称的数字 编码应该是一对一的 即一个名称只能与一个数字相关联 一个数字只能与一个名称相关联 对此进行编码的明智方法是什么 我
  • 依赖解析算法

    我正在编写一个包管理器 为此我希望依赖项解析尽可能强大 每个包都有一个版本列表 每个版本包含以下信息 具有可比性的 ID 依赖关系 软件包列表以及每个软件包的一组可接受的版本 冲突 软件包列表以及每个软件包的一组与该版本一起导致问题的版本
  • 查找其索引的乘积可被另一个数字 X 整除的对的数​​量

    给定一个数组和某个值 X 找到满足以下条件的对的数量 i lt j a i a j and i j X 0 Array size lt 10 5 我想这个问题有一段时间了 但只能想出蛮力解决方案 通过检查所有对 这显然会超时 O N 2 t
  • 欧拉项目 45

    我还不是一名熟练的程序员 但我认为这是一个有趣的问题 我想我应该尝试一下 三角形 五边形 六边形 数字由以下生成 公式 三角形 T n n n 1 2 1 3 6 10 15 五边形 P n n 3n 1 2 1 5 12 22 35 六角
  • 在矩阵/位图中查找质量簇

    这是此处发布的问题的延续 在 2D 位图上查找质心 https stackoverflow com questions 408358 finding the center of mass on a 2d bitmap正如给出的例子 它讨论了

随机推荐

  • 无法使用 R 的 leaflet 包循环生成多个地图

    这是新来的 对 R 来说也相对较新 所以请原谅 apriori 并让我知道我在这篇文章中做错了什么 以避免将来烦扰其他人 我正在尝试创建传单地图序列 1971 年 9 月至 1972 年 4 月 最后 我想将它们压缩成闪亮的 并让用户播放
  • chrome.storage.local.set 使用变量键名

    在 Google Chrome 扩展中 我想使用chrome storage local http code google com chrome extensions storage html property local 与 localS
  • Xcode 7.2.1 的问题

    刚刚安装新版本的Xcode 7 2 1 他花了比预期更长的时间 但是当它完成并运行时 xcode 继续使用版本 7 1 1 我以为重启Mac就可以解决这个问题 但是没有 知道可以花什么吗 或者碰巧我已经完成了 EDITED 我的MAC版本
  • 如何修复从底部切掉的字体?

    我在应用程序中有自定义字体 我正在使用它Text如下 struct CustomButton View var label String var action gt Void init label String action escapin
  • Windows Phone Soap/添加 Web 参考问题

    我有一个 SOAP 由 Java 提供支持 服务 我正在尝试连接到 WP7 使用Add gt Service Reference生成代理客户端 但不幸的是 删除了 WP7 和 完整 NET 4 上方法的所有参数 使用 slsvcutil e
  • 原始计算器 - 动态方法

    我在获得以下问题的正确解决方案时遇到一些困难 你的目标是一个正整数n 找到最少的数量 从数字 1 开始获取数字 n 所需的操作 更具体地说 我在下面的评论中有测试用例 Failed case 3 16 Wrong answer got 15
  • 如何连接故事板中的原型单元?

    我在故事板中创建了一个表格视图 以及一个自定义原型单元 我已经在情节提要中设置了单元格标识符 并尝试将其出队并得到 无法使具有标识符 TTEntry 的单元出列 必须为标识符注册笔尖或类 或者连接故事板中的原型单元 我在情节提要 Table
  • 使用 python pty 伪终端进程发送命令并退出

    使用 python pty 模块 我想使用 stdin 函数 如 pty 模块想要的那样 向终端模拟器发送一些命令 然后强制退出 我想到了类似的事情 import pty cmnds exit n ls al n Command to se
  • Sun 的 bug 数据库中的 Java 版本名称

    In https bugs java com bugdatabase view bug bug id 6525150 https bugs java com bugdatabase view bug bug id 6525150它说 发布修
  • 如何在java中实现高效的超时

    有n执行某些操作的对象 执行操作后 时间戳将会更新 现在我想实现一个超时线程 它验证时间戳是否早于 60 秒 我的第一个解决方案是使用一个线程 while loop sleep 来做到这一点 该线程保存一个包含所有对象 包括最后一个时间戳
  • 使用 Visual Studio 创建大小为 100 字节的 C 程序

    我想编写一个 C 应用程序 该程序在构建时将创建一个大小为 100 字节或更小的可执行文件 即使我创建一个简单的 C 程序 其中只有一个空的main 我的输出文件在 Visual Studio 2015 上变成 11KB 有没有办法告诉 V
  • 在目录和子目录中搜索文件中的模式

    在Linux中 我想搜索给定目录及其子文件夹 文件以查找某些包含和排除模式 find apps exec grep performance v warn dev null 这与搜索所经过的大量行相呼应 我不想这样 我想找到包含性能但不包含警
  • 为什么这个 Jinja nl2br 过滤器会转义
    而不是

    我正在尝试实施this http flask pocoo org snippets 28 Jinja nl2br筛选 它工作正常 除了 br 是不是广告被转义了 这对我来说很奇怪 因为 p 没有被转义并且它们都在同一个字符串中 我正在使用烧
  • 可以将 std::numeric_limits 专门用于用户定义的类似数字的类吗?

    的文档std numeric limits
  • PHP 忽略 php.ini 中的curl.cainfo 设置(显然)

    我正在尝试修复 Windows 服务器 运行 IIS 上的 php curl 调用 该调用返回熟悉的错误 SSL 证书问题 请验证 CA 证书是否正常 详细信息 错误 14090086 SSL 例程 SSL3 GET SERVER CERT
  • 如何在 Apps 脚本中设置表格的水平对齐方式

    我无法找到使用 Google Apps 脚本水平对齐 Google 文档中表格的方法 我彻底检查了所有文档 也盲目地尝试了几种方法 尝试一 var cells Company rowData 3 Title rowData 4 var ta
  • 循环展开优化,它是如何工作的

    考虑这个 C 代码 int sum 0 for int i 0 i lt 5 i sum i 这可以用 伪 汇编方式翻译 无需循环展开 pseudo code assembly ADDI R10 0 sum ADDI R11 0 i LOO
  • 自动提供数据库中的唯一ID

    在我的项目中 我需要注册一位捐赠者 我需要用户输入他的信息 系统会注册他并为捐赠者生成一个唯一的 ID 制作一个带有字段ID的表 该表具有索引并且具有自动递增功能 CREATE TABLE Persons ID int NOT NULL A
  • 如何尾部除第一行之外的所有行[重复]

    这个问题在这里已经有答案了 例如 我有一个文件 1 2 3 然后我想从第二行输出到尾部 我怎样才能在linux下做到这一点 tail n 2 my file 将输出所有行myfile从第 2 行开始 n2会显示最后两行 tail有很多更多的
  • 算法时间复杂度分析

    您好 我正在尝试分析该算法的时间复杂度 但我很难解开并计算最终循环将执行的次数 我意识到第一个循环是 log n 但之后我似乎无法得到一个评估良好的总和 这是算法 for int i 1 i lt n i 2 i for int j 1 j