不使用擴展方法(LINQ)。不幸的是,我僅限於.NET 2.0。 (是的,它很吸引)通用SortedList,如何找到大於搜索關鍵字的第一個元素的索引?
尋找接近O(log(n))的東西。
感謝您的幫助。
不使用擴展方法(LINQ)。不幸的是,我僅限於.NET 2.0。 (是的,它很吸引)通用SortedList,如何找到大於搜索關鍵字的第一個元素的索引?
尋找接近O(log(n))的東西。
感謝您的幫助。
要找到大於給定鍵的第一個鍵,您可以使用鍵列表SortedList<T>.Keys
並在鍵上執行Binary Search或Interpolation Search。這將產生O(log(n))
(MSDN指出鍵查找是O(1)
)。
二進制搜索它的O(n log n)查找。
搜索那裏的東西在奧德O(log n)的二分搜索
搜索裏的東西是不按順序O(n)的線性。如果事情不合適,不能做得更好。
除非你會一遍又一遍地執行這個操作,並且緩存結果,爲什麼還要打擾,那麼按順序使值成爲O(n * log(n))的想法呢?只是使用你的線性搜索。
(筆記以爲你有興趣尋找價值不是關鍵)
我聞到功課。 – dss539 2009-06-08 19:52:08
dss539:閱讀StackOverflow常見問題。他們非常清楚地表明作業問題不容忽視。 – TheTXI 2009-06-08 19:52:47
我希望這是家庭作業,但不是,真正的工作在這裏。 – Newbie 2009-06-08 19:54:02