有没有时间复杂度为O(N)的排序算法?

2024-05-19

大多数排序算法的复杂度为 O(NN) 或 O(NlogN) 来实现结果。但是,对于特定的输入集,有些算法的复杂度为 O(N)。我想知道是否有一种排序算法在所有情况下都具有 O(N) 的复杂度。


如果您只能比较(检查两个项目是否为 、==)正在排序的值,那么您不能做得比 O(n log(n)) 更好。它是现有算法中为数不多的经过验证的下限之一。证明并不太复杂(查看维基百科上的比较排序以了解详细信息),但它足够长,此处不再重复。

如果你能做一些除了比较之外的事情,你就会有更大的灵活性。如果你有数字,你可以查看桶排序(一种基数排序),它使 O(n) 排序成为可能。

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

有没有时间复杂度为O(N)的排序算法? 的相关文章

  • 序列和与 GCD

    大约一个月前 我在编程挑战中遇到了这个问题 但社论尚未发布 所以我在这里问 有一个大小为 N 的数组 A 求 A 的 K 个长度子序列的总和 GCD Example 如果 A 1 2 3 且 K 2 1 2 3 总和 1 GCD 3 1 3
  • 一种良好且简单的随机性测量方法

    获取一长整数序列 例如 100 000 个 并返回序列随机性的测量值的最佳算法是什么 该函数应返回单个结果 如果序列并非完全随机 则返回 0 如果完全随机 则返回 1 如果序列有点随机 它可以给出介于两者之间的东西 例如0 95 可能是一个
  • 如何在 JavaScript 中构建树模式匹配算法?

    好吧 这是一个有点复杂的问题 但是 tl dr 基本上是如何使用 模式树 解析 实际树 如何检查特定的树实例是否与特定的模式树匹配 首先 我们有我们的结构模式树 模式树通常可以包含以下类型的节点 sequence节点 匹配一系列项目 零个或
  • 素数生成器算法

    我一直在尝试解决素数生成算法的SPOJ问题 这是问题 彼得想为他的密码系统生成一些素数 帮助 他 你的任务是生成两个给定之间的所有素数 数字 Input 输入以单行中测试用例的数量 t 开始 t Output 对于每个测试用例 打印所有素数
  • “包含字符串”的快速索引

    在我的应用程序中 我有多达数百万个短字符串 大部分短于 32 个字符 我想实现一个带有附加列表的搜索框 该列表仅包含包含在搜索框中输入的整个字符串的元素 如何预先建立索引来快速找到此类字符串 所有排序的 STL 容器都会检查整个字符串 对于
  • 如何在 C# 中以编程方式创建柔和的颜色?

    根据所需的颜色数量均匀分布地生成它们 如果指定的计数为 8 则看起来像这样 List
  • 使用 php 在多维数组中按键排序[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中对多维数组进行排序 https stackoverflow com questions 2059255 sorting multidimensional array in php 如何在
  • 按常量 id 对自定义类型的向量进行排序

    我需要对自定义类型的向量进行排序std vector
  • Java 2d 游戏中的路径查找?

    本质上它是我正在开发的一款吃豆人克隆游戏 我有一个 Enemy 类 并创建了该类的 4 个实例 它们都代表游戏的 4 个幽灵 所有幽灵都会在屏幕的随机区域启动 然后它们必须朝着吃豆人角色前进 当玩家控制吃豆人并移动它时 他们应该跟随它并尽可
  • 我应该对算法使用递归还是记忆化?

    如果我可以选择使用递归或记忆来解决问题 我应该使用哪一个 换句话说 如果它们都是可行的解决方案 因为它们提供了正确的输出并且可以在我正在使用的代码中合理地表达 那么我什么时候会使用其中一个而不是另一个 它们并不相互排斥 您可以同时使用它们
  • 独立对列进行排序,使得所有空值都位于每列的最后

    这是一个名为的示例表animal name color fox brown fox red dog gold 现在 我想要的是这样的结果 fox dog brown gold red 名称应该是结果的列 不同颜色值作为行 我的第一个想法是
  • 按相反顺序对列表进行排序

    我有直接顺序的列表 list1 List
  • 如何按字母顺序对 UITableView 分区进行排序?

    我有一个包含 3 个类别的分段 UITableView 我正在使用这段代码 NSArray arrayOne NSArray arrayWithObjects one two three four nil NSDictionary dict
  • 如何按键中的值对 Redis 哈希进行排序

    Redis 有没有一种好方法来获取按值排序的哈希中的键 我查看了文档 但没有找到直接的方法 另外有人可以解释一下redis中的排序是如何实现的 以及什么吗 本文档 http redis io commands SORT using hash
  • 使用日期 Swift 3 对字典数组进行排序

    我有一个名为 myArray 的数组 其中添加了字典 我希望该字典按时间排序 这是字典中的键 那个时间是在 String 中 时间的日期格式为 yyyy MM dd HH mm ss 我尝试使用下面的代码解决方案 但给出了 从 字符串转换
  • 在一个区域中拟合二维多边形的算法?

    这有标准吗 算法名称 说 我有 10 个不同大小的多边形 我有一个特定大小的区域 我想知道如何填充该区域中的最多多边形 以及它们是如何拟合的 笔记 多边形可以根据限制集进行旋转 一个可能的名称是包装问题 http en wikipedia
  • sigmoid 的导数

    我正在使用反向传播技术创建一个神经网络进行学习 我知道我们需要找到所使用的激活函数的导数 我正在使用标准 sigmoid 函数 f x 1 1 e x 我已经看到它的导数是 dy dx f x f x 1 f x 这可能是一个愚蠢的问题 但
  • 在 Java 中对多语言环境字符串进行排序

    我正在尝试按字符串字段 国家 地区 对对象列表进行排序 每个国家 地区都使用其母语 阿根廷 澳大利亚 奥地利 例如 我想要做的是让 出现在 A 国家之后 因为字母 对应于拉丁语 B 我正在尝试使用默认的 Collat er 但非拉丁名称仍然
  • 计算序列而无法存储值?

    问题陈述 here http www spoj com problems EC SER 令 S 为无限整数序列 S0 a S1 b Si Si 2 Si 1 对于所有 i gt 2 你有两个整数 a 和 b 您必须回答有关序列中第 n 个元
  • 我如何开始玩五子棋?

    我读到Gomoku http en wikipedia org wiki Gomoku它可以使用 Minimax 和 Alpha Beta 剪枝算法来实现 所以 我阅读了这些算法 现在了解了游戏将如何解决 但是当我坐下来编写代码时 我面临着

随机推荐

  • 在 python 中使用 pandas 计算行的出现次数

    我有一个包含数千行和 4 列的 pandas 数据框 IE A B C D 1 1 2 0 3 3 2 1 3 1 1 0 有没有办法统计某一行出现了多少次 例如 可以找到多少次 3 1 1 0 并返回这些行的索引 如果你只寻找一行 那么我
  • 导出 .jar 时出现 FileNotFoundException

    在我的客户端 服务器应用程序中 我需要发送一些文件 txt doc等 从客户端到服务器 当我在 Eclipse 中运行代码时 它可以工作 但是当我导出 Applet 的签名 JAR 时 它不能工作 它抛出一个FileNotFoundExce
  • 我们如何更改数据表中搜索字段的宽度

    我可以更改 dataTables 中搜索文本字段的宽度吗 我现在正在编写以下代码 但它不起作用 example dataTable columnFilter sPlaceHolder head before aoColumns type t
  • 为所有子文件夹设置 git 配置值

    我知道可以设置每个存储库的配置来覆盖用户级配置 即 path to my repo gitconfig覆盖 gitconfig 是否可以设置 git 配置来覆盖给定文件夹的所有子文件夹的用户级设置 即 我有 topLevelFolder1
  • iOS 13 beta 外部屏幕上的 OverscanCompensation

    我正在测试一个应用程序的测试版 但遇到了外部屏幕的问题 我们看到应用程序周围有黑色边框 我们之前可以通过设置来纠正它overscanCompensation to none但在 iOS 13 中 该设置根本没有任何效果 我们曾经看到一个错误
  • 在没有匹配器的情况下如何跳过specs2中的测试?

    我正在尝试使用 scala 中的 specs2 测试一些与数据库相关的内容 目标是测试 db running 然后执行测试 我发现如果数据库关闭 我可以使用 Matcher 类中的 orSkip 问题是 我正在获取一个匹配条件的输出 作为
  • `dplyr::_join` 函数的命名向量“by”参数[重复]

    这个问题在这里已经有答案了 我正在写一个函数dplyr join两个数据框by不同的列 第一个数据帧的列名称动态指定为函数参数 我相信我需要使用rlang准引用 元编程 但未能找到可行的解决方案 我很感激任何建议 library dplyr
  • Qt - 获取互联网上托管的网页的源代码(HTML 代码)

    我想获取网页的源代码 HTML 例如StackOverflow的主页 这是我到目前为止编写的代码 QNetworkAccessManager manager QNetworkReply response manager get QNetwo
  • FQL 返回空集?

    我正在尝试涉足 Facebook API 和 FQL 我的查询返回一个空集 并且我不确定要更改哪些权限 几年前 当 API 首次出现时 我就开始使用一个旧应用程序 我正在尝试使用该应用程序和fql query 测试控制台 http deve
  • Docker 教程入门第 4 部分连接被拒绝

    我不明白我错过了什么 docker compose yml version 3 services web replace username repo tag with your name and image details image sv
  • 插入具有只读主键列的表

    我正在使用一个使用 sql server 数据库的应用程序 我试图在表中插入一行 如下所示 该表有一个主键 prodNum 这是自动生成的密钥 当我尝试向表中插入一行时 如下所示 在行中intResult oSglProdTableAdap
  • PHP:将多字节字符串(单词)拆分为单独的字符

    尝试使用 mb split 将这个字符串 主楼怎么走 分割成单独的字符 我需要一个数组 但没有成功 有什么建议吗 谢谢你 例如 尝试使用带有 u 选项的正则表达式 chars preg split u string 1 PREG SPLIT
  • .NET EXE 内存占用

    即使是一个简单的Notepad http en wikipedia org wiki Notepad 28software 29C 中的应用程序消耗兆字节的 RAM 如任务管理器中所示 最小化应用程序时 任务管理器中的内存大小会显着下降 并
  • 谷歌地图 API 没有密钥?

    如何在没有密钥的情况下使用 Google Maps v3 API 我在里面见过这个例子 http www birdtheme org useful v3largemap html但无法弄清楚具体是什么导致它不出错 编辑 如果有人建议 Sta
  • Jinja2 嵌套循环计数器

    set cnt 0 for room in rooms for bed in room set cnt cnt 1 endfor cnt endfor 假设我们有一个嵌套循环 打印的 cnt 将始终为 0 因为这是我们进入第一个 for 循
  • 在Java中使用没有密码的p12文件

    尽我所能 我不知道如何使用 p12Java 中没有密码的文件 我尝试过设置javax net ssl keyStorePassword to 但无论我做什么 我都会收到以下 SSL 错误 HTTP 传输错误 javax net ssl SS
  • Xcode 存档上传失败并出现错误

    我正在尝试从 xCode 将新版本上传到 iTunesConnect 但每次我都会遇到此问题 问题是什么 我该如何解决这个问题 最近 我开始在上传过程中遇到问题 Xcode 经常卡住 最终会因您看到的第二个错误而失败 受够了一段时间后 我转
  • 为什么这个 JS 创建的 SVG 在 Chrome 中不起作用?

    考虑这个简单的 SVG SMIL 动画
  • 如何将查询结果转换为案例类?

    我正在使用 Slick 2 0 我有以下内容User案例类别 case class User id Option Long email String password String class Users tag Tag extends T
  • 有没有时间复杂度为O(N)的排序算法?

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