重新整理数据结构与算法(c#)—— 算法套路二分法[二十四]
前言
前面写过二分法使用的是递归手法,然后该节才有不递归的方式执行。
二分法的时间复杂度为log(2)n。空间复杂度为:1。
正文
代码:
static void Main(string[] args)
{
int[] arr = {1,3,8,10,11,67,100 };
int index= BinarySearch(arr,8);
Console.WriteLine("查询出的下标索引为:"+index);//2
Console.ReadKey();
}
public static int BinarySearch(int[] arr,int target)
{
int left = 0;
int right = arr.Length - 1;
while (right>left)
{
var mid = (left + right) / 2;
if (arr[mid] == target)
{
return mid;
}
else if (arr[mid] > target)
{
right = mid + 1;
}
else
{
left = mid - 1;
}
}
return -1;
}