为什么要费心比较排序呢?

2023-12-31

Timsort、Quicksort 和 Mergesort 等算法在“真实世界“排序方法。这些比较排序的案例非常实用——它们已被证明是在各种环境中性能最高、最稳定、多用途的排序算法。

然而,似乎我们在计算机上排序的几乎所有内容都是可数/部分排序的。数字、字符、字符串,甚至函数都适合某种有意义的非比较排序方法。这里的候选者是基数排序。一般来说,它的运行速度比 O(n*log(n)) 更快,在许多情况下大大超过了 n * log(n) 的理论比较排序限制,复杂度为 O(K*n) -- K是表示特定项目所需的位数。

是什么赋予了?


比较排序基于一个非常好的抽象:您所需要的只是一种比较两个元素的方法。然后,根据您的语言,使用模板(c ++),接口(java),类型类(haskell),函数对象(javascript)等。您可以对可以容纳任意类型的容器进行排序,您唯一需要的是实现比较。

如何对任意类型实现基数排序? :)

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

为什么要费心比较排序呢? 的相关文章

  • 对 Objective-c 对象数组进行排序

    所以我有一个自定义课程Foo有许多成员 interface Foo NSObject NSString title BOOL taken NSDate dateCreated 在另一堂课上我有一个NSMutableArray包含这些对象的列
  • Exposé 布局算法

    我正在制作一些项目 其布局类似于 Mac OS X 在 Expos 中对窗口所做的操作 它适应项目的长宽比和可用区域的长宽比 基本上 可用区域分为行和列 每个单元格 行和列的交集 中放置一个项目 这些项目必须保持其纵横比 此处width h
  • Python 给定 k 个分区的整数分区

    我正在尝试寻找或开发Python 的整数分区代码 仅供参考 整数分区将给定整数 n 表示为小于 n 的整数之和 例如 整数5可以表示为4 1 3 2 3 1 1 2 2 1 2 1 1 1 1 1 1 1 1 我为此找到了许多解决方案 ht
  • 使用FFT算法计算

    给定在平面上的点 1 0 2 0 n 0 上发现的一组 n 个粒子电荷载流子 在 i 0 点发现的粒子电荷记为 Qi 作用在粒子上的力由以下公式给出 C is a Coulomb s constant 给出一个算法来计算 Fi 对于总复杂度
  • 字符串排序真的是 O(n^2logn) 吗? [复制]

    这个问题在这里已经有答案了 我读了以下内容 排序需要 O NlogN 那么它怎么是 O N 2logN 我们在这里想念的是 两个字符串的比较不是 O 1 在最坏的情况下 需要 在 所以最终的复杂度是O N 2logN 它是否正确 我一直认为
  • 如何在给定目标索引数组的情况下对数组进行就地排序?

    你如何对给定的数组进行排序arr in place给定目标索引数组ind 例如 var arr A B C D E F var ind 4 0 5 2 1 3 rearrange arr ind console log arr gt B E
  • 如何使用 CUDA/Thrust 对两个数组/向量根据其中一个数组中的值进行排序

    这是一个关于编程的概念问题 总而言之 我有两个数组 向量 我需要对一个数组 向量进行排序 并将更改传播到另一个数组 向量中 这样 如果我对 arrayOne 进行排序 则对于排序中的每个交换 arrayTwo 也会发生同样的情况 现在 我知
  • 线性代数如何在算法中使用?

    我的几个同行都提到 学习算法时 线性代数 非常重要 我研究了各种算法并学习了一些线性代数课程 但我没有看到其中的联系 那么线性代数如何应用在算法中呢 例如 图的连接矩阵可以带来哪些有趣的事情 三个具体例子 线性代数是现代 3D 图形的基础
  • 通过分布式数据库聚合作业优化网络带宽

    我有一个分布式 联合数据库 结构如下 数据库分布在三个地理位置 节点 每个节点集群有多个数据库 关系数据库是 PostgreSQL MySQL Oracle 和 MS SQL Server 的混合体 非关系数据库是 MongoDB 或 Ca
  • 寻找距离原点最近的 100 颗恒星的算法

    首先让我提出正确的问题 问 有一个文件包含超过一百万个点 x y 每个点代表一颗星星 a b 处有一颗行星地球 现在 任务是构建一种算法 返回距离地球最近的 100 颗恒星 您的算法的时间和空间复杂度是多少 这个问题在各种采访中被问过很多次
  • 我需要一个支持高效随机访问和 O(k) 插入和删除的容器

    我再次尝试问同样的问题question https stackoverflow com questions 3808708 delete parts of a dynamic array and grow other 但我最终提出了一个不同
  • Java中如何对对象数组进行排序?

    我的数组不包含任何字符串 但它包含对象引用 每个对象引用都通过 toString 方法返回名称 id 作者和发布者 public String toString return name n id n author n publisher n
  • 关于在字典中查找所有有效单词的算法问题

    给定一个字典 只是一个字符串列表 您收到来自外部来源的未知数量的信件 给定字母串 您将如何列出您可以通过这些字母的任意组合组成的所有有效单词 来自字典 因此 如果您收到 applead 你应该找到apple bad pad lead等 我知
  • 如何使用 JQuery DataTables 根据每个单元格中值的子字符串对列进行排序

    假设我有一列包含格式为 P 的对象标识符 例如 P12 3767 我使用的是 1 9 1 版本的 JQuery数据表插件 http datatables net用于排序和分页 有没有办法可以忽略单元格值的前 4 个字符 P12 部分 以便我
  • 带路径压缩算法的加权 Quick-Union

    有一种 带路径压缩的加权快速联合 算法 代码 public class WeightedQU private int id private int iz public WeightedQU int N id new int N iz new
  • 用 C++ 生成 AST

    我正在用 C 制作一个解释器 到目前为止我已经有了词法分析器来生成标记 问题是我不确定如何生成 行走 解析树 我正在考虑使用数组数组来制作解析树 但我不确定如何以正确的顺序将标记实际插入到解析树中 我不确定是自上而下 左右还是自下而上 左右
  • 使用多级解决方案计算二维网格中的最近邻

    我有一个问题 在 x y 大小的网格中 我提供了一个点 并且我需要找到最近的邻居 在实践中 我试图在 pygame 中找到距离光标最近的点 该点跨越颜色距离阈值 计算如下 sqrt rgb1 0 rgb2 0 2 rgb1 1 rgb2 1
  • 异或交换可以扩展到两个以上的变量吗?

    我一直在尝试将异或交换扩展到两个以上的变量 例如n变量 但我没有得到比这更好的地方3 n 1 对于两个整型变量x1 and x2你可以像这样交换它们 swap x1 x2 x1 x1 x2 x2 x1 x2 x1 x1 x2 所以 假设你有
  • 使用并集查找(又名不相交集)检测图是否是二分图

    我正在 Spoj 上做一个问题 基本上可以简化为检测图是否是二分图 我正在尝试使用 dfs 为图表着色 但它太慢了 有人评论这个 没有 bfs 没有 dfs 没有二部图 简单的并查集就可以做到 确实速度很快 提示 1 偶数长度的环不会影响两
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这

随机推荐

  • Mac 上的 Rails 安装

    过去 4 个月我一直在努力学习 Ruby on Rails 但问题是 每当我有时间的时候 我的所有时间都浪费在尝试将它安装到我的 Mac 机器上 只需一个安装程序即可轻松在窗口中安装 但在 mac 中我尝试了 Ruby 和 Rails 版本
  • 标准模式下 IE11 不支持 querySelectorAll 方法

    我的 IE11 遇到问题 这document querySelectorAll正在引起一些问题 每当我通过控制台使用它时 如下所示 document querySelectorAll test class 我收到以下错误 Object do
  • PHP 代码版本依赖

    在 php 的每个版本中 都会添加一些新功能 也会停止一些功能 Example 需要 php 5 4 0 及以上版本 因为 hex2bin 是在 php 5 4 0 中引入的 在 php net 中手动检查 php 代码中使用的每个内置函数
  • Objective C 中 NSString 的 switch 大小写 [重复]

    这个问题在这里已经有答案了 我想将 case 语句与 NSString 一起使用 请将我的代码更改为正确的代码 NSString day Wed switch day case Sat NSlog Somthing break case S
  • 模块“...”解析为非模块实体,无法使用此构造导入

    我有一个 tsx 文件 在其中尝试从 Material ui 导入 RaisingButton 组件 如下所示 import as RaisedButton from material ui lib raised button 然而 这给了
  • TableView 不显示来自 API 调用的带有 JSON 数据的文本

    我使用连接到 APIAlamofire and SwiftyJson 我得到这个 JSON 返回 contacts id c200 name Ravi Tamada email email protected cdn cgi l email
  • 使用 cloudflare 将 CNAME 分配给我在 amazon S3 中的静态网站存储桶

    我正在为我的兄弟创建一个网站 我的第一个网站 并决定通过亚马逊 s3 托管整个网站 到目前为止我已经完成了通常的设置 使用所需域的名称 www website com 创建存储桶 将存储桶设为网站并分配索引文档和错误页面 上传所有内容并公开
  • 使用 ASP.NET Web API 将 yyyy-MM-dd 形式的日期查询参数反序列化为 noda 时间 LocalDate 对象

    我正在研究使用 NodaTime LocalDate 来替换我们现有的 BCL DateTime DateTimeOffset 类的使用 由于我们对 DateTime 可能不明确的行为的误解 我们的代码遇到了许多与时区相关的问题 为了充分利
  • Tensorflow 2 Hub:如何获取中间层的输出?

    我正在尝试实施以下网络Fots https arxiv org pdf 1801 01671 pdf使用新的tensorflow 2进行文本检测 作者使用resnet作为其网络的骨干 所以我的第一个想法是使用tensoflow hub re
  • 如果存在维基百科 api,如何使用? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试查找是否有 Wikipedia API 我认为它与 MediaWIki 相关 如果是这样 我想知道如何告诉维基百科给我一篇关
  • 如何获取生成的子进程命令字符串

    我有Python子进程调用 它们被格式化为参数序列 例如subprocess Popen ls l 而不是单个字符串 即subprocess Popen ls l 当像我一样使用排序参数时 有没有办法获取发送到 shell 的结果字符串 用
  • maven-resources-plugin 中出现奇怪的 NullPointerException

    大约一天两次 我们在构建中遇到 NullPointerException 06 44 23 ERROR Failed to execute goal org apache maven plugins maven resources plug
  • 尝试定义模块时,Maven 不将 EJB 识别为项目的依赖项

    今天我将本地Glassfish服务器升级到3 1 1 为我公司将服务器升级到相同版本做准备 我正在尝试将我的 Web 服务项目转换为与新服务器兼容 但遇到了障碍 在我的 Ear 的 pom 文件中 我之前将 webapp 和 ejb 都列为
  • 身份验证选民没有有效的属性。春季安全

    我从事 Spring Boot 2 1 工作 我希望允许所有默认端点 要么他们被正确验证 如果他们继续下去特定认证 https stackoverflow com questions 61521644 spring boot specifi
  • 配置 DbContext 构造函数

    我正在尝试使用 EF Core 工具来管理我在 C 类库中设计的 SqlServer 数据库 它位于类库中 因为我需要在 MVC6 网站和一些命令行工具中使用数据库架构 我必须将类库转换为 netapp 因为当前版本的工具不支持类库 但我不
  • python 2.7 Popen:`close_fds`有什么作用?

    我有一个 Python 2 7 的网络服务器 它使用Popen将一些工作委托给子进程 url arg http localhost index html someparam somevalue call phantomjs some pha
  • Android带有fragment的mapview不能添加两次?

    我正在使用 android 兼容性类以及在此处找到的片段中使用地图视图的 hack https github com petedoyle android support v4 googlemaps https github com pete
  • 如何向表单添加自定义属性

    我正在尝试将自定义属性添加到可以通过 Delphi 属性编辑器访问的基本表单 如果我只是像使用标准组件一样添加属性 则该属性将不会显示在属性编辑器中 这是我尝试过的 unit TestForm interface uses Windows
  • 使用 JavaScript 裁剪图像

    在我的 Angular 6 应用程序中 我正在制作一个文件上传选项 在预览中 上传的文件需要显示自动裁剪和自动调整大小 我尝试过以下方法 HTML
  • 为什么要费心比较排序呢?

    Timsort Quicksort 和 Mergesort 等算法在 真实世界 排序方法 这些比较排序的案例非常实用 它们已被证明是在各种环境中性能最高 最稳定 多用途的排序算法 然而 似乎我们在计算机上排序的几乎所有内容都是可数 部分排序