重新整理数据结构与算法(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;
}
posted @ 2020-07-14 10:58  敖毛毛  阅读(141)  评论(0编辑  收藏  举报