.NET 中是否存在排序队列?

2024-01-29

我需要一个相当专业的 .NET 集合,我不认为 BCL 可以帮助我,但我想我会把它扔掉,因为如果有人知道类似的东西。

基本上,我的要求是:

  • 我有一个值对列表,例如: (3, 10)、(5, 10)、(3, 7)、(5, 5)
  • 顺序很重要,即。 (3, 10) != (10, 3)
  • 单个值的重复是可以的,但重复的值对应该被删除(最好是默默地)。
  • 更重要的是,我需要一直对这个列表进行排序。我只对排序算法在任何时候定义的列表中的第一个值感兴趣。

因此,我希望能够执行的一些示例代码(正如我设想的那样,它可能会被实现,适合上述内容的其他实现也可以):

public class Pair
{
    public Pair(int first, int second)
    { First = first; Second = second; }
    public int First { get; set; }
    public int Second { get; set; }
}

SortedQueue<Pair> foo = new SortedQueue<Pair>((left, right) => {
    return right.First - left.First;
});

foo.Add(new Pair(10, 3));
foo.Add(new Pair(4, 6));
foo.Add(new Pair(6, 15));
foo.Add(new Pair(6, 13)); // This shouldn't cause a problem

Pair current = foo.Shift(); // current = (4, 6)

I quote:

我需要一直对这个列表进行排序。 我只对第一个感兴趣 列表中的值由 任意时刻排序算法。

这听起来像你做的not想要一个有序队列,但是优先队列 http://en.wikipedia.org/wiki/Priority_queue。如果性能是一个问题,那么 PQ 肯定会更快,O(log n) vs O(n)。但是删除重复问题还需要您保留并行的 HashSet 。

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

.NET 中是否存在排序队列? 的相关文章

随机推荐

  • 逐行累积和

    我有一个data table dt如下 df lt data frame t1 rep 0 5 t3 c 12 5 8 9 5 t7 c 25 48 7 9 14 dt lt setDT df dt t1 t3 t7 1 0 12 25 2
  • 将一系列数字生成为字符串 Python

    我需要循环遍历许多具有结构化文件名的文件 它们的形式为 Mar00 sav Sep00 sav Mar01 sav 目前我正在这样做 Years 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
  • Material-ui v4 无法读取每个组件未定义的属性“根”

    我已经迁移自Material UIv3 到 v4 现在我导入的每个组件都会出现此错误 app js 3581 未捕获类型错误 无法读取属性未定义的 根 在按钮 app js 3581 在 renderWithHooks app js 126
  • Angular JS在每个http请求上添加请求参数$http

    我想使用 Angular http 与 api 交互 但我需要将我的身份验证令牌存储到 http 以便在每个请求中 无论 post get put 删除 我希望令牌存在 我也看到人们放置标头中的令牌 我知道如何将其放入标头中 但我不确定将令
  • 使用 pandas 中的日期 - 删除日期时间中看不见的字符并转换为字符串

    我正在使用 pandas 导入数据dfST read csv parse dates timestamp date 在我的 csv 中 日期的格式为 YYY MM DD 这就是我所需要的 没有时间 我有几个数据集需要比较成员资格 当我将这些
  • File.listFiles 由于无效 UTF-8 字符而崩溃

    应用程序在目录中导航文件时崩溃 崩溃日志如下 JNI DETECTED ERROR IN APPLICATION input is not valid Modified UTF 8 illegal start byte 0xf6 art r
  • django 密码保护页面

    我想为法官做一个注册页面 但我想确保在进入注册页面之前你必须输入密码 每个法官都会有一个我将提供给他们的相同的密码 他需要一个简单的页面上有一个窗口用于输入我之前提供的密码 如果有人能够说出我如何创建这样的模型及其形式 或者是否有任何其他更
  • 在命令行上指定 emacs 中的窗口布局

    我希望能够在从命令行启动 Emacs 时指定它的窗口布局 更具体地说 我调用 emacs file1 file2 file3 file4 例如 请参阅 file1 buff list instead of the default that
  • HTML 行跨度 1,5(一倍半)

    假设我有下表 table border 2 tr td abcsss td td sdf td td def td td def td td defsssss td tr tr td abcsss td td sdf td td def t
  • ANSI-C 语法 - 数组声明,如 [*] 等

    ANSI C 语法来自 link http www quut com c ANSI C grammar y html给我以下数组声明规则 1 direct declarator type qualifier list assignment
  • 将列索引转换为对应的列字母

    我需要将 Google 电子表格列索引转换为其相应的字母值 例如 给定一个电子表格 我需要这样做 这个函数显然不存在 它只是一个例子 getColumnLetterByIndex 4 this should return D getColu
  • 资源注释:未定义 [javax.sql.DataSource] 类型的合格 bean:预期有单个匹配 bean,但发现了 2 个

    我正在使用基于 Spring Java 的配置来使用 Spring Data 配置多个数据库 在配置文件中 我创建了两个data source for MySQL and MSSQL Server 当尝试使用以下命令将依赖项注入实体管理器时
  • 如何获取向nodejs服务器发送数据(.emit())的用户的详细信息?

    我正在试验一个正在运行的应用程序nodejs express and socket io 服务器端 var app require express var http require http Server app var io requir
  • 将 SQLite 与 DMD 静态链接 (Windows x86)

    我尝试与 sqlite3 静态链接但没有成功 我正在使用 etc c sqlite3 标头和 sqlite3 合并 为了创建 lib 文件 我尝试了 VC 和 MinGW gcc 它们都成功编译了源文件 但它们都生成 COFF 对象格式 D
  • 挂钩可用于在 django 和 mysql 设置死锁后自动重试

    我在 Django 中使用 innoDB 表和 mysql 数据库 在调查错误期间 操作错误 1213 尝试获取锁定时发现死锁 尝试重新启动事务 我碰到这个答案 https stackoverflow com a 2423921 10268
  • 如何分析二进制文件?

    我有一个二进制文件 我不知道它是如何格式化的 我只知道它来自delphi代码 有没有办法分析二进制文件 是否存在任何 模式 来分析和反序列化未知格式文件的二进制内容 试试这些 反序列化数据 分析它是如何编译你的exe的 尝试文件分析器 ht
  • ASP.NET MVC 3.0 FormCollection 中的 JQuery Post 表单

    我尝试将 Jquery 中的表单提交到控制器中的 Action 方法 为此 我序列化我的表单并使用 get 方法 在控制器中 我收到像 param1 1 param2 2 这样的字符串形式的表单 有没有办法在我的操作方法中直接检索 Form
  • nginx 1.2.0 - socket.io - HTTP/1.1 - 代理 websocket 连接

    我想用 nginx proxy pass 模块替换我的 node http proxy 模块 正如我所读到的 新发布的 nginx 版本是否可以开箱即用地支持 HTTP 1 1 我看到一些线程正在努力解决这个问题 即 nginx 不支持 w
  • 使用 Shiny R 将反应性弹出图/图添加到 Leaflet 地图

    我已经构建了一个闪亮的仪表板 用户可以从下拉菜单中选择一个城市 然后下载该城市的一系列数据并使用 Leaflet 进行可视化 主要的用户需求是单击地图上的某个区域会生成一个弹出图表 其中包含该区域的所有分数 见下图 这是我的一般方法 将用户
  • .NET 中是否存在排序队列?

    我需要一个相当专业的 NET 集合 我不认为 BCL 可以帮助我 但我想我会把它扔掉 因为如果有人知道类似的东西 基本上 我的要求是 我有一个值对列表 例如 3 10 5 10 3 7 5 5 顺序很重要 即 3 10 10 3 单个值的重