说我有以下代码:
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)来插入和删除密钥。