假设我有以下代码:
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) 来插入和删除键。