在顺序表查找的时候,依次查询时间复杂度为O(N)。
而二分查找法可以做到时间复杂度O(logN)。
static void Main(string[] args)
{
var arr = new int[] { 0, 1, 16, 24, 35, 47, 59, 62, 73, 88, 99 };
var index = Search(arr, 59);
Console.WriteLine(index);
Console.ReadKey();
}
static int Search(int[] arr, int key)
{
int low = 0;
int high = arr.Length;
while (low <= high)
{
int middle = (low + high) / 2;
if (key > arr[middle])
{
low = middle;
}
else if (key < arr[middle])
{
high = middle;
}
else
{
return middle;
}
if (high - low == 1) { break; }
}
return 0;
}