这段代码的复杂度是多少? (大O)这是线性的吗?

2024-04-25

for(int i=0; i<array.length -1; i++){
  if(array[i] > array[i+1]){
    int temp = array[i];
    array[i] = array[i+1];
    array[i+1]=temp;
    i=-1;
  } 
}

我认为代码对输入数组进行排序,最坏情况的复杂度是 O(n)。

该代码的正确大 O 复杂度是多少?


它的时间复杂度为 O(n^3),并且是冒泡排序的低效版本。

该代码扫描数组,查找第一对相邻的无序元素,交换它们,然后从数组的开头重新开始。

最坏的情况下,当数组逆序时,代码满足的递推关系为:

 T(n+1) = T(n) + n(n-1)/2

这是因为在代码到达第 n+1 个元素之前,算法将对前 n 个元素进行排序。然后代码重复向前扫描以找到这个新元素,并将其向后移动一个空格。这需要时间 n + (n-1) + ... + 1 = n(n-1)/2。

解出 Theta(n^3)。

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

这段代码的复杂度是多少? (大O)这是线性的吗? 的相关文章

  • 如何最小化两个子多边形的最大纵横比?

    我想使用直线将凸多边形切成给定面积比的两部分 以使两个子多边形的较大纵横比最小化 目前我的方法包括选择一个随机起点 计算将多边形分割成目标区域的适当终点 然后计算两个纵横比中较大的一个 然后重复这个很多次 直到我足够接近最小值 多边形 A
  • 二进制字符串到十进制字符串

    下午好 如何将字符数多于语言最大整数类型中位数的二进制字符串转换为十进制字符串 换句话说 假设你有字符串 111001101001110100100 1001001111011100100 并且您不能先将其转换为整数 那么您将如何以 10
  • 获取无平方数的列表

    获得该值的一种方法是自然数 1 n 我们对每个因子进行因式分解 看看它们是否有重复的质因数 但这对于大的情况来说会花费很多时间n 那么有没有更好的方法从 1 中获取无平方数n 您可以使用埃拉托斯特尼筛法的修改版本 取一个布尔数组 1 n 预
  • for循环内递归函数的时间复杂度

    如果我们有一个函数 int x 0 int fun int n if n 0 return 1 for int i 0 i
  • 添加到数组连续数字

    这是我向SO提出的第一个问题 我希望能答对 在 PHP 中 如果你不会 Python 或伪语言也可以 给定一个包含 n 个元素的数组 old array 1 2 3 5 7 8 9 20 21 23 29 我需要向新数组添加连续数字 如果不
  • 当目标是查找某个字符串的所有出现情况时,KMP 最坏情况的复杂度是多少?

    我还想知道哪种算法在查找另一个字符串中所有出现的字符串时具有最坏情况的复杂性 博耶 摩尔算法似乎具有线性时间复杂度 KMP 算法在查找字符串中所有出现的模式时具有线性复杂度 如 Boyer Moore 算法1 如果您尝试在 aaaaaaaa
  • 如何在 dijkstra 算法中以 O(log n ) 时间更新优先级队列中的键?

    过去一周我一直在研究 dijkstra 算法 我在 java 中有正确的运行代码 它使用数组来计算标准 findMin 函数 该函数为您提供距离最小的顶点 显然它是 O n 现在我希望使用优先级队列 最小堆 来实现它 我的思考过程是 whi
  • 如何使用KDTrees实现最近邻搜索?

    所以 我正在实施一个KD Tree http en wikipedia org wiki Kd tree进行最近邻搜索 我已经构建了树部分 但我认为我没有完全理解搜索部分 关于遍历树来搜索邻居 维基百科文章如下 Starting with
  • 用于插入/删除/排名/选择查询的最佳数据结构/算法

    到目前为止 我知道像AVL树和红黑树这样的自平衡BST可以在O log n 次内完成这些操作 然而 要使用这些结构 我们必须自己实现AVL树或RB树 我听说有一个算法 实现这四个操作而不使用自平衡 BST 有了我们自己定义的结构 我们就需要
  • 哪种数据聚类算法适合检测时间序列事件中未知数量的聚类?

    这是我的场景 考虑在不同地点和时间发生的一组事件 例如 考虑有人在高空记录暴风雨期间城市中的雷击 就我的目的而言 闪电是瞬时的 只能击中某些位置 例如高层建筑 还可以想象每次雷击都有一个唯一的 ID 以便以后可以参考该雷击 这个城市大约有1
  • 基于时间的算法评分

    我们希望创建一种评分算法 在更短的时间内获得更高的分数 在更长的时间内获得更少的分数 需要注意的是 没有实际范围 因此时间范围可以从 100 毫秒到长达 10 分钟或更长时间 点范围为 0 到 50 谢谢你的帮助 你可以简单地把它变成一个线
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • 使到 n 个点的集合的欧氏距离之和最小的点

    我有一组点W x1 y1 x2 y2 xn yn 在 2D 平面上 你能找到一种算法 将这些点作为输入并返回一个点 x y 在 2D 平面上 距以下点的距离之和最小W 换句话说 如果 di Euclidean distance x y xi
  • 缩短文本并仅保留重要句子

    德国网站 nandoo net 提供了缩短新闻文章的可能性 如果使用滑块更改百分比值 文本会发生变化并且某些句子会被遗漏 您可以在这里看到它的实际效果 http www nandoo net read article 299925 http
  • 如何求解:T(n) = T(n - 1) + n

    我已经解决了以下问题 T n T n 1 n O n 2 现在 当我解决这个问题时 我发现界限非常松散 我是否做错了什么 或者只是这样 您还需要一个递归关系的基本情况 T 1 c T n T n 1 n 为了解决这个问题 您可以首先猜测一个
  • 编程 Pearls - 随机选择算法

    Programming Pearls 第一版第 120 页介绍了从 N 个整数总体中选择 M 个等概率随机元素的算法 InitToEmpty Size 0 While Size lt M do T RandInt 1 N if not Me
  • 快速求解子集和

    考虑这种解决子集和问题的方法 def subset summing to zero activities subsets 0 for activity cost in activities iteritems old subsets sub
  • 删除队列中的最后一个元素

    我需要删除队列的最后一个元素 我唯一可以使用的操作是 Peek 获取第一个元素而不删除它 Enqueue element 向队列末尾插入一个元素 Dequeue 删除第一个元素 IsEmpty true 或 false 队列是否为空 而且我
  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • PHP 内置函数复杂性(isAnagramOfPalindrome 函数)

    我在过去的两个小时里一直在谷歌搜索 但找不到 php 内置函数时间和空间复杂度的列表 我有回文字谜 https stackoverflow com questions 4628386 what is the best algorithm t

随机推荐

  • 使用 RCurl 登录 WordPress

    我想使用 R 的 RCurl 包登录 WordPress 网站 以便安装 WordPress 插件 可能在 WordPress 的某些选项页面上使用 postForm 由于该网站受密码保护 我请求您帮助如何验证我的 R 会话 我发现以下三个
  • AND 运算符不能与布尔值和字符串一起使用

    我有一个 LINQ2SQL 语句 其中使用两个条件 var query1 from r in dt Test where r ID 92 r Status I select r ID r Status I 但它给了我一个错误 即 AND 运
  • UITableView 具有不同的可选部分?

    我正在寻找一种 好 的方法来解决一些特殊要求 我有一个包含不同部分的 UITableView 例如 基础数据 关于我 兴趣 Images 基本数据始终包含值 但仍然存在可变行数 所有其他 类别 可以包含行 也可以为空 如果没有数据 则不应显
  • 获取比较指令的值

    据我了解 cmp 指令将设置标志寄存器中的一些位 然后 您可以使用 jle jnp 等指令基于这些指令进行分支 我想知道如何从比较中恢复整数值 示例 以下是有效的 c 语法 y x a gt 13 因此 a 与 13 进行比较 得到 tru
  • 如何将 dateTimePicker 值设置为 DateTime.MaxValue

    这会在运行时生成错误 dateTimePicker Value DateTime MaxValue 你不能 DateTimePicker 支持的最大日期为DateTimePicker MaximumDateTime http msdn mi
  • 如何在 C++ 中更改活动桌面壁纸

    你好 我想写一个小程序来更改 Windows 7 中的壁纸 我想使用以下代码 include windows h include wininet h include shlobj h include wchar h include
  • Python 中高效的逐元素函数计算

    我有以下优化问题 给定两个 np arraysX Y和一个函数K我想尽快计算矩阵关联 gram matrix 其中 i j th元素计算为K X i Y j 这里有一个使用嵌套 for 循环的实现 它被认为是解决此类问题最慢的 def pr
  • 设计邀请:可选择发送电子邮件

    在 devise invitable 中 您可以通过执行以下操作来邀请新用户 User invite email gt email protected cdn cgi l email protection name gt John Doe
  • 如何在运行时从java对象获取实例变量的行号

    我想在运行时查找 Java 文件中实例变量的行号 到目前为止我的理解 它可以通过java反射来完成 但不知道该怎么做 提前致谢 简短的回答 不可以 如果你想得到any运行时的行号信息 您首先必须确保您的类已编译并保留行号信息 如果您不拥有这
  • 拆分具有空格的字符串,除非它们包含在“引号”内?

    为了让事情变得简单 string streamR sr ReadLine sr Readline results in one two two 我希望能够将它们保存为两个不同的字符串 删除除引号之间的空格之外的所有空格 因此 我需要的是 s
  • Swagger WebApi 在构建时创建 json

    有什么方法可以在我的 Web api 的构建任务期间创建 swagger json 吗 我想使用 json 将其输入代码生成器并生成打字稿定义文件 非常欢迎任何帮助 我在用着虚张声势 AspNetCore Cli 注意 我使用的是 NET
  • PowerShell:导入模块,但没有可用的“ExportedCommands”

    当我使用 Import Module Name
  • Hive如何存储数据,什么是SerDe?

    当查询表时 SerDe 将将文件中的字节中的一行数据反序列化为 Hive 内部使用的对象来操作该行数据 执行 INSERT 或 CTAS 时 请参阅第 441 页上的 导入数据 表的 SerDe 将将 Hive 的一行数据的内部表示序列化为
  • React useState() 不同步更新值[重复]

    这个问题在这里已经有答案了 如果在设置值后立即调用 React useState 不会更新变量的值 我读过有关 useEffect 的内容 但并不真正知道这对于这个特定场景有何用处 完整代码 https codesandbox io s n
  • 如何从 ControlTemplate 检索 VisualChild

    我在 NET 3 5 SP1 中有一个 WPF 应用程序 它正在使用TabControl 在那我们有TabItems 这反过来又有它们的Styles确定当前显示的项目 假设我们有一个TabItem named Books now Books
  • Cassandra 中的 SASI 索引似乎有一些错误

    我刚刚开始在 Cassandra 3 7 0 上使用 SASI 索引 遇到了一个问题 我怀疑这是一个错误 我几乎没有追踪到该错误出现的情况 以下是我发现的 使用 SASI 索引查询时 它可能会错误地返回 0 行 改变一点条件 它又可以工作了
  • 在 Bokeh 服务应用程序中绘制本地图像

    我正在尝试使用绘制 png 图像ImageURL本地存储在应用程序中的类 static目录 在下面的代码中 当使用同一图像的 Web url 时 它会按预期工作 但所有创建本地 url 的尝试都会失败 此外 当运行基本相同的代码并输出到文件
  • 是否可以编写 TFS 查询来获取任务实际花费的时间?

    我一直在使用 TFS 来跟踪我的待办事项 现在我正在尝试编写一个查询来查看我在过去 7 天内完成特定任务所花费的时间 到目前为止我有这个查询 工作项类型 任务 AND 状态 完成 AND 关闭日期 Today 7 AND 区域路径 Proj
  • SQL Server:将((int)年,(int)月,(int)日)转换为日期时间[重复]

    这个问题在这里已经有答案了 可能的重复 使用 T SQL 创建日期 https stackoverflow com questions 266924 create a date with t sql 我有一个数据表 将每年 月份和日期的值存
  • 这段代码的复杂度是多少? (大O)这是线性的吗?

    for int i 0 i