2009-06-08 47 views
3

不使用擴展方法(LINQ)。不幸的是,我僅限於.NET 2.0。 (是的,它很吸引)通用SortedList,如何找到大於搜索關鍵字的第一個元素的索引?

尋找接近O(log(n))的東西。

感謝您的幫助。

+0

我聞到功課。 – dss539 2009-06-08 19:52:08

+2

dss539:閱讀StackOverflow常見問題。他們非常清楚地表明作業問題不容忽視。 – TheTXI 2009-06-08 19:52:47

+0

我希望這是家庭作業,但不是,真正的工作在這裏。 – Newbie 2009-06-08 19:54:02

回答

5

要找到大於給定鍵的第一個鍵,您可以使用鍵列表SortedList<T>.Keys並在鍵上執行Binary SearchInterpolation Search。這將產生O(log(n))MSDN指出鍵查找是O(1))。

2

二進制搜索它的O(n log n)查找。

0

搜索那裏的東西在奧德O(log n)的二分搜索

搜索裏的東西是不按順序O(n)的線性。如果事情不合適,不能做得更好。

除非你會一遍又一遍地執行這個操作,並且緩存結果,爲什麼還要打擾,那麼按順序使值成爲O(n * log(n))的想法呢?只是使用你的線性搜索。

(筆記以爲你有興趣尋找價值不是關鍵)

相關問題