我的工作在C#4.0和我有以下問題:快捷方式
給定的實數的有限集合S和參數k(不一定在SET),發現S中最小的數字大於或等於k。
很明顯,我可以使用平衡二叉樹來做到這一點。但是,在C#中沒有這樣的數據結構可以幫助我。 C#中的算法和可能的實現有哪些選項?
編輯:
,因爲大多數的人更感興趣的不是真正幫助批評,我會更多地解釋:
它是劃分在百萬件的實際功能的算法(或箱,就像直方圖一樣),我需要找到包含k的片段並有效地在其中應用一些計算。這些作品是形式[a; b)並且不重疊。
我正在設計的方法需要考慮片段k,並且性能至關重要,因爲它應該被稱爲每秒數千次。因此,O(n)搜索是不可接受的。
構建S的數據結構所浪費的時間並不重要,也不重要,因爲該集只會被構建一次而且永遠不會改變(它是不可變集)。
我知道我可以使用紅色的黑色樹,它具有O(log n)搜索複雜性。但是,我想研究其他算法選項(可能還有C#中的現有實現)。
那麼這是一個家庭作業或面試問題? – RQDQ
@RQDQ你問的原因是什麼? –
「在C#中沒有實現這樣的數據結構可以幫助我」 - 然後實現一個(或找到別人的實現)! –