C# 对 2 个索引进行二分查找
我有一个带有属性的对象; startIndex, endIndex
我可以通过实现以下内容来基于 startIndex 进行二分搜索:
int IComparable.CompareTo(object obj)
{
Repeat r = (Repeat)obj;
return this.startIndex.CompareTo(r.startIndex);
}
但是,对于相同的重复对象,我想也分别对结束索引进行二分搜索。
我该怎么做?
谢谢。
I have an object with attributes ; startIndex, endIndex
I am able to do binary search based on startIndex by implementing the following :
int IComparable.CompareTo(object obj)
{
Repeat r = (Repeat)obj;
return this.startIndex.CompareTo(r.startIndex);
}
However with the same Repeat Object I d like to do binary search also on the end index separately.
How can i do this ?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用
Array.BinarySearch()
或List.BinarySearch()
方法,则可以使用采用IComparer
的重载代码> 或IComparer
。然后,您可以在单独的类中实现比较语义,并在需要进行搜索时将其传入。If you're using the
Array.BinarySearch()
orList<T>.BinarySearch()
methods, you can use the overload that takes anIComparer
orIComparer<T>
. Then you can implement the comparison semantics in a separate class and pass it in when you want to do a search.