C# BinarySearch(Object) 方法完整攻略
1. 方法简介
C# BinarySearch(Object) 方法用于在已排序的一维数组中搜索指定的对象,并返回数组中指定对象的索引。该方法采用二分查找算法,如果搜索到指定对象则返回该对象的索引,否则返回一个负数。
2. 方法声明
public static int BinarySearch(Array array, Object value);
3. 方法参数
array:一个已排序的一维数组。
value:要搜索的对象。
4. 返回值
如果搜索到指定对象,则返回该对象在数组中的索引;如果未搜索到则返回一个负数。
5. 示例说明
示例一
int[] nums = { 1, 2, 3, 4, 5 };
int index = Array.BinarySearch(nums, 4);
if (index >= 0)
{
Console.WriteLine("4在数组中的索引为:" + index);
}
else
{
Console.WriteLine("未找到4。");
}
示例二
string[] strings = { "cat", "dog", "fish", "bird" };
int index = Array.BinarySearch(strings, "dog");
if (index >= 0)
{
Console.WriteLine("dog在数组中的索引为:" + index);
}
else
{
Console.WriteLine("未找到dog。");
}
6. 注意事项
- 传入的数组必须已经按照升序或者降序排序。
- 如果数组中存在多个与要查找的对象相等的元素,任意一个元素的索引都可能被返回。
- 如果要查找的对象不在数组中,那么返回值是对以查找对象按照同样规则排序后得到的那个位置的取反值再减一,例如:如果要查找的对象应该排在索引为2和3之间,则返回-3。
- 由于二分查找算法要求数组中间元素的索引必须是整数,因此数组长度必须小于或者等于Int32.MaxValue。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# BinarySearch(Object):在整个集合中搜索指定的对象,并返回第一个匹配项的索引 - Python技术站