c# - 对数组中的 x/n 元素进行排序的最有效方法 - .NET

标签 c# .net algorithm sorting

我有一组对象,它们在上次更新时都有时间戳标记。我想获取数组的一个子集,其中只有最近更新的项目。我将仅从 50 到 100 的数组中检索 5 个元素,性能是我的首要任务,因此我将使用其中一种类方法对整个数组进行排序。执行此操作的最佳方法是什么?

最佳答案

我会使用 insertion sort并在您选择了所需数量的元素后退出。该解决方案的复杂度为 O(k*n),其中 k 是要提取的元素数。

也有在O(n)的未排序数组中找到第K大元素的算法

How to find the kth largest element in an unsorted array of length n in O(n)?

一旦找到第 K 个最大的元素 X,就可以遍历数组并选择所有大于 X 的元素。保证恰好有 k-1 个元素优于 X。

关于c# - 对数组中的 x/n 元素进行排序的最有效方法 - .NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10859776/

相关文章:

c# - 将 MySQL .DMP 文件转换为 MS Sql Server 2005 的 .SQL 文件

c# - ASP.Net MVC : Submit array/collection in a single parameter

c# - 我可以传入 T.Property 吗?另外,改进这种方法的想法?

algorithm - 3 的倍数的惰性传播线段树

c++ - 一种颜色内的最大矩形

c# - 使用第三方 dll 的 VisualStudio NUnit3TestAdapter 测试项目

c# - 初始分配的变量

c++ - 如何使用 CUDA 生成随机排列

c# - 初始化和填充新列表 <> 的更简洁方法?

c# - 如何在 C# 中获取修改后的文本框值?