如何在O(log n)中将SortedDictionary中的第一个键大于指定键?

时间:2012-10-29 23:40:00

标签: c# .net search dictionary sorteddictionary

说我有以下代码:

SortedDictionary<int,string> test = new SortedDictionary<int, string> ( );
test.Add ( 1, "one" );
test.Add ( 3, "three" );
test.Add ( 7, "seven" );
test.Add ( 8, "eight" );
int key = GetFirstKeyGreaterThan ( test, 3 ); // expects to get 7
int key2 = GetFirstKeyGreaterThan ( test, 6 ); // expects to get 7

有没有一种简单的方法来实现GetFirstKeyGreaterThan方法? 我知道我们可以使用GetEnumerator方法并在达到3的键后调用MoveNext,但这将是一个O(n)操作。

我不想使用SortedList,因为我需要一个O(log n)来插入和删除密钥。

0 个答案:

没有答案