我試圖找到一個數據結構,以便在我的Java項目中使用。我想要做的是從一組數字中獲得下一個最大值到任意數字以下,或者在沒有這樣的數字存在的情況下被通知。查找任意數字下面的最大值的數據結構
示例1) 我的任意數字是7.0。 {3.1,6.0,7.13131313,8.0} 我需要從這個集合中得到的數字是6.0。
例2) 我的任意數字是1.0。 {2.0,3.5555,999.0} 該集合中不存在下一個最高數字,所以我需要知道它不存在。
我能想到的最好的方法是通過數組進行索引和比較,一旦我完成了我的任意數字,就會返回1步。在最壞的情況下,雖然我的時間複雜度是O(n)。有沒有更好的辦法?
爲什麼不使用二進制搜索? – yurib
維護一個搜索樹,如果它沒有,則實現一個前置函數。 –