使用for循环迭代二维数组的时间复杂度是多少?

2024-01-01

In 这个答案 https://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm#answer-22688792,它说:

如果算法的执行时间与输入大小成正比,即时间随着输入大小的增加而线性增长,则称该算法以线性时间运行。

我输入了一个3x3的数组,所以我需要输入9个数字,需要迭代9次。

我输入了一个4x4的数组,所以我需要输入16个数字,需要迭代16次。

........

迭代的执行与数字的数量(或大小)成正比。 所以我认为时间复杂度应该是O(n).

But 另一个答案 https://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm#answer-33474486说:

O(n^c):嵌套循环的时间复杂度等于最内层语句的执行次数。例如,以下示例循环的时间复杂度为 O(n^2)

for (int i = 1; i <=n; i += c) {
   for (int j = 1; j <=n; j += c) {
      // some O(1) expressions
   }
}

我觉得有点困惑。 所以我觉得这个问题也可以是:

是什么意思nin array?(是指数组的大小还是数组的维数?)使用的时间复杂度是多少for循环迭代二维数组。 是吗O(n) or O(n^2)?

如果时间复杂度是O(n^2)因为它有两个for循环。 我用它来创建一个 3x3 数组:

a[0,1,2] -> b[0,1,2] -> c[0,1,2]

所以我用它来迭代这个数组。它将是O(n),所以它会比使用更快for循环迭代数组。为什么?

PS:我用谷歌翻译看到这些答案,所以也许我误解了。


数组中n的平均值是多少? (是指数组的大小还是数组的维数?)使用for循环迭代二维数组的时间复杂度是多少?是 O(n) 还是 O(n^2)?

你是完全正确的。这是一个惯例问题。重要的是什么n表示在一个特定的问题中。

如果我们的数组是arr[n][n],迭代需要O(n^2)时间。如果我们的数组是arr[k][k] and n=k*k是数组的大小,迭代需要O(n)时间。既然我们定义了,这里就不矛盾了n在这些情况下有所不同。

一般来说,如果您只访问一个数组元素一次,则可以说您具有线性复杂度。无论你如何用O符号。

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

使用for循环迭代二维数组的时间复杂度是多少? 的相关文章

  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 为什么这两种不同的构造数组的方式会产生不同的行为?

    当我以两种不同的方式构造一个 2 元素数组时 例如a and b 当我将一个元素添加到内部数组之一时 我得到两个不同的结果 这也会发生在append 根据构建每个之后的输出 我希望它们完全相同 julia gt a 2 element Ar
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 确定一组日期的事件重复模式

    我正在寻找一种模式 算法或库 它将采用一组日期并在退出时返回重复的描述 即集合 11 01 2010 11 08 2010 11 15 2010 11 22 2010 11 29 2010 会产生类似 十一月的每个星期一 的结果 有没有人以
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • 如何将链接延伸到整个单元格?

    我有一个表 其中包含可以单击以编辑行的链接 锚点 我希望将这些链接拉伸到包含单元格的整个宽度和高度 我已经将它们设置为display block 所以它们有完整的宽度 问题是 我很难使用 CSS 将它们设置为全高 请参阅我的示例小提琴 ht
  • User.config 损坏

    因此 我做了相当多的研究来试图解决这个问题 但似乎无法 1 重现该问题 但更重要的是 2 找到一个最新的解决方案来修复它 这种情况在两周内已经发生过两次 其中 user config 文件会随机损坏 例如 XML 文件的块会丢失 从而导致应
  • 如何推送(使用 libgit2)

    如何使用 libgit2 进行推送 喜欢git push origin master在控制台上 我想使用C版本 克隆 打开 添加文件到索引并像魅力一样提交工作 请参阅code http pastebin com ta9EjMBn test
  • 聚焦时的 UWP 文本框背景

    由于某种原因 没有简单的方法可以将 TextBox 的焦点背景从默认的白色更改为白色 它工作的唯一方法 我需要它是深色或透明的 是创建自定义文本框 粘贴大量代码行 来自 然后编辑两行
  • 使用 Selenium 突出显示文本

    我有一个上下文敏感菜单 需要突出显示文本才能正常工作 但是 我在使用 Selenium 选择文本时遇到问题 我首先找到我正在寻找的 WebElement 然后尝试使用不同的可用鼠标事件与其进行交互 When I m trying to se
  • Android 上的远程调试 Chrome 问题

    我在 Android 设备 运行 Android 版本 4 0 4 的 LG Nitro 上使用 Chrome 开发人员工具的远程调试功能时遇到问题 几天前它工作得很好 但现在我的设备从未出现在 about inspect 页面上 我已关注
  • 在 Rails 中检查和验证非模型参数的位置

    在 Ruby On Rails 中 您在哪里检查不是模型属性的 URL 参数 例如 page per page sort mode 在控制器中还是在模型中 例如 当执行更复杂的数据库查询时 您会检查参数并可能在控制器中设置默认值 然后执行以
  • 调用超类的超类方法?

    我怎样才能让孩子忽略父母认为有趣的事情而直接去祖父母认为有趣的事情呢 孩子仍然继承自父母 但它只是不同意一些方法 调用超类的超类的方法 另外 如果我处于孩子不同意父母的意见但同意父母的父母的情况 这是否被认为是糟糕的设计 class Gra
  • 使用哪个供应商的 JDK 构建重要吗?

    如果我要部署到使用 WebSphere 6 1 Java 1 5 的服务器 我应该在我的构建箱上使用 IBM 的 JDK 吗 或者 Sun 的 JDK 会编译成相同的二进制文件吗 如果我应该使用 IBM 的 我在哪里可以获得 Windows
  • Heroku Local [警告] 未找到 ENV 文件

    当我跑步时heroku local 我的控制台向我显示 警告 未找到 ENV 文件 我怎样才能解决这个问题 Add an env文件 该文件包含本地VARS您的本地设置与 heroku 环境不同 但是 如果一切正常 您可以忽略该警告 或者执
  • 如何从 pickle 文件一次加载一行?

    我有一个大数据集 20 000 x 40 000 作为 numpy 数组 我已将其保存为 pickle 文件 我不想将这个巨大的数据集读入内存 而是一次只读取其中的几行 例如 100 行 以用作小批量 如何从 pickle 文件中只读取一些
  • Bootstrap表单-无标签文本的复选框水平垂直对齐

    今天早上我已经从 Bootstrap 3 0 0 更改为 3 2 0 因为我的 Web 应用程序需要一些新功能 一切似乎都按预期工作 直到我观察到复选框垂直对齐的问题 form horizontal form 一个例子可以在http www
  • JDK8 的 JDK 11 迁移问题,com.fasterxml.jackson.module.afterburner.util.MyClassLoader 进行非法反射访问

    我已成功将我的 spring boot 项目 在 prod env 中运行 从 JDK8 迁移到 JDK11 我可以构建 测试 打包 安装 部署等等 从 IDE 启动项目后 我的日志中出现以下警告 但这并没有停止构建和运行我的应用程序 请就
  • OpenSSL,将 CRT 转换为 PEM

    我一直在尝试使用 openssl 将 crt 证书转换为 pem openssl exe x509 in server crt out openssl der outform DER 使用该命令后 我得到 无法加载证书1760 错误 090
  • 底图:如何删除实际的纬度/经度线,同时保留轴上的刻度线

    我按底图绘制了地图 如下所示 plt figure figsize 7 6 m Basemap projection cyl llcrnrlat 40 125 urcrnrlat 44 625 llcrnrlon 71 875 urcrnr
  • 如何在 Pubnub Android 示例中使用 Xirsys Hosting?

    https github com GleasonK android webrtc api https github com GleasonK android webrtc api 我是韩国的学生 我正在做我的学校项目 我正在使用上面网站上的
  • 从解析表中删除一行

    我有一个名为 最喜欢的标签 的表 它有字段 标签 用户 指针 相应的用户对象 ID 其中用户可以存储标签以及用户对象 ID 作为用户字段中的指针 并且用户可以从收藏夹中删除标签 对于存储 更新 它工作正常 ParseObject favta
  • 如何使用 Windows 批处理增加文件夹名称?

    我有一个批处理脚本 它创建一个名为 New Folder 的文件夹以及其中的一些子目录和文件 目前 如果我需要创建多个 New Folder 我必须重命名该批处理创建的每个 New Folder 然后才能再次运行它并创建一个新文件夹 我想做
  • 如何为 Google Cloud Pubsub“创建”/“分配”日志记录处理程序?

    发展从上一个线程 https stackoverflow com questions 54249312 python pubsub subprocess complaining about logger handler how do i f
  • 使用for循环迭代二维数组的时间复杂度是多少?

    In 这个答案 https stackoverflow com questions 11032015 how to find time complexity of an algorithm answer 22688792 它说 如果算法的执