c#快速排序并检索少量键值对

时间:2012-04-02 14:05:59

标签: c# quicksort

我有一个reoccuring操作,它由构建一些键/值对组成。 关键是Double的类型。 每次我有1到9对。 然后我需要按键的顺序检索值。

所以我的问题是,实现这组对的最佳方法是什么才能实现所有操作的最佳性能?

提前致谢

4 个答案:

答案 0 :(得分:5)

您可以使用SortedList或SortedDictionary。

但由于四舍五入问题,使用double作为关键似乎很危险 看看你是否可以使用decimal,它在Equals()部门更可靠。

答案 1 :(得分:2)

为什么要麻烦排序算法,.Net Framework已经内置了99.9999% * 可行案例的高效算法。

SortedList<double, T>可能是您最好的选择,除非您有重复的“密钥”,然后只需使用List<Tuple<double,T>>并在需要结果时拨打Sort或使用OrderBy

除非您一次进行数亿次这类排序操作,否则10项或更少项目根本没有。

*相对夸张。

答案 2 :(得分:0)

这样的事可能

var sorted = from k in yourContainer.Keys
             orderby yourContainer[k] ascending
             select k;

答案 3 :(得分:0)

double不是key的好候选人。

但是如果你想顺便使用它,可以只使用Dictionary<double, ..something..>

SortedList<double, ..something..>