加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 频繁插入已排序的集合

发布时间:2020-12-16 01:37:09 所属栏目:百科 来源:网络整理
导读:我已经对集合(List)进行了排序,我需要始终对其进行排序. 我目前正在我的集合上使用List.BinarySearch,然后在正确的位置插入元素.我也尝试过每次插入后的排序列表,但性能不可接受. 有没有可以提供更好性能的解决方案?也许我应该使用其他收藏品. (我知道Sorte
我已经对集合(List)进行了排序,我需要始终对其进行排序.

我目前正在我的集合上使用List.BinarySearch,然后在正确的位置插入元素.我也尝试过每次插入后的排序列表,但性能不可接受.

有没有可以提供更好性能的解决方案?也许我应该使用其他收藏品.

(我知道SortedList但它仅限于唯一键)

解决方法

PowerCollections有一个OrderedBag类型,可能对你需要的东西有好处.来自文档

Inserting,deleting,and looking up an
an element all are done in log(N) + M
time
,where N is the number of keys in
the tree,and M is the current number
of copies of the element being
handled.

但是,对于.NET 3.5内置类型,使用List.BinarySearch并将每个项目插入正确的位置是一个良好的开端 – 但是在内部使用数组,因此当您执行所有复制时,性能将下降插入.

如果你可以将插件分组到可以改进的东西,但除非你在所有插入后只能进行一次排序操作,否则如果可以的话,最好使用PowerCollections中的OrderedBag.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读