【发布时间】:2010-12-30 17:04:26
【问题描述】:
列表已排序。
我有一个列表,我想对其进行二进制搜索。 T 有 StartIndex、EndIndex 等成员。
我可以使用 StartIndex 对列表进行二进制搜索,即:我为此实现了 IComparable。
我需要稍微扭曲一下,如下所示:我想找到一个可能是 OffBy 小值的 StartIndex。
例如:T.StartIndex= 100
如果输入是 101 并且 OffBy 1 那么 BinarySearch 应该返回这个对象。
我该怎么做?
顺便说一句,我正在询问如何使用 List 具有的默认二进制搜索方法。这就是我感兴趣的,对自定义二分搜索实现不感兴趣。
【问题讨论】:
-
为了执行二分搜索,需要对列表进行排序,但您不要在任何地方都这样做。
-
@OP:为什么不首先调整开始和结束索引以包含它们?
标签: c# .net algorithm search binary-search