二分法:
public static int BinarySearch(int[] a, int n, int key)
{
int low = 0;
int high = a.Length - 1;
int mid;
while (low <= high)
{
mid = (low + high) / 2;
if (key < a[mid])
{
high = mid - 1;
}
else if (key > a[mid])
{
low = mid + 1;
}
else
{
return a[mid];
}
}
return 0;
}
Main
static void Main(string[] args)
{
int[] a = new int[] { 10, 25, 35, 40, 60, 61, 90, 110 };
int result = BinarySearch(a, a.Length,90);
Console.WriteLine(result);
Console.ReadKey();
}