不使用扩展方法(LINQ)。不幸的是,我被限制在.NET 2.0中。 (是的,很糟糕)
寻找接近O(log(n))的东西。
感谢您的帮助。
答案 0 :(得分:5)
要查找大于给定密钥的第一个密钥,您可以使用密钥列表SortedList<T>.Keys
并在密钥上执行Binary Search或Interpolation Search。这将产生O(log(n))
(MSDN表示关键查找为O(1)
)。
答案 1 :(得分:2)
二进制搜索它以进行O(n log n)查找。
答案 2 :(得分:0)
搜索oder O(log n)二进制搜索中的内容
搜索O(n)线性的顺序。如果事情不顺利,就无法做得更好。
按顺序按顺序生成值的想法需要O(n * log(n)),除非你要反复执行此操作并缓存结果为什么要打扰?只需使用线性搜索。
(注意你觉得你有兴趣搜索价值而非关键)