📅  最后修改于: 2023-12-03 15:29:28.326000             🧑  作者: Mango
在 C# 中,Array.BinarySearch
方法是一个用于搜索数组的成员的静态方法。通过指定一个数组、搜索范围以及要搜索的元素来查找特定元素的索引。方法按照搜索范围进行二分搜索,并返回找到元素的索引。 如果未找到元素,则返回一个负数,其代表将要插入该元素的索引的按位补码。
该方法具有多个重载形式,其中使用 Array.BinarySearch(Array,Int32,Int32,Object)
形式的方法。该方法允许指定数组、搜索范围以及要搜索的元素。下面是一个使用该方法的示例程序。
using System;
class Program
{
static void Main(string[] args)
{
int[] numbers = { 1, 3, 5, 7, 9 };
int index = Array.BinarySearch(numbers, 0, 5, 7);
if (index >= 0)
{
Console.WriteLine("7 found at index " + index);
}
else
{
Console.WriteLine("7 not found. Index: " + ~index);
}
}
}
该程序创建了一个整数数组,并使用 Array.BinarySearch
方法在该数组中搜索数字 7。0
和 5
参数指定了要搜索的数组范围,这里是从第一个元素(索引 0)开始,到最后一个元素之前(索引 5)。最后一个参数 7
是要搜索的元素。方法返回 3
,因为数字 7 位于索引 3 处。如果数字 7 不在数组中,则方法返回 ~4
,表示应将其插入到索引 4 的位置(也就是第五个元素之前)。
以下是 Array.BinarySearch
方法中使用的参数的解释。
Array
:要搜索的数组。Int32
:搜索范围的开始索引,其中包括要搜索的范围。Int32
:要搜索的范围的长度。Object
:要搜索的元素。Array.BinarySearch
方法是在 C# 中用于搜索数组的成员的强大方法。它实现了二分搜索算法,可以快速查找数组中的元素。要使用该方法,请指定要搜索的数组、搜索范围以及要搜索的元素。如果元素被找到,则方法返回该元素在数组中的索引;否则,它返回一个标明应该将元素插入到数组中的哪个位置的负数。