3
我有一個List<KeyValuePair<double, double>>
,該列表按KeyValuePair.Key
排序,所以它可以修改爲二進制搜索。我有一個double
對象。現在,我的任務是找到double
對象的索引。以下是報考條件:不精確的二進制搜索:給定一個值,找到元素位置的上下限索引
- 如果
double
對象相匹配的KeyValuePair.Key
的一個特定的公差範圍內,則相應KeyValuePair.Value
應返回。 - 如果
double
對象超出KeyValuePair.Key
的最大和最小範圍,則應返回0。 - 如果
double
對象落入KeyValuePair.Key
的最大分鐘內,但在指定容限內不匹配任何KeyValuePair.Key
,那麼獲得最近上的平均和最接近的較低KeyValuePair.Value
(如通過KeyValuePair.Key
測量)。
我知道二進制搜索實現在C#中可用,但它不完全適合我的需要。我想問問,有沒有已經滿足我需求的任何實施?我不想花幾個小時來編寫和調試其他人已經編寫,調試和完善的代碼。
+1。好的解決方案 – 2010-07-13 04:08:10
唯一需要注意的是id該列表包含重複項:如果列表包含多個具有相同值的元素,則該方法只返回其中一個出現,並且可能返回任何一個出現,不一定是第一個。 –
2010-07-13 04:09:39
不錯的一個......我沒有意識到'BinarySearch'實際上會返回插入索引的按位補碼......謝謝! – Graviton 2010-07-13 04:09:55