01 数组:二分法查找法 leetcode704

对数组区间 左闭右闭、左闭右开 的讨论

binarySearch 使用场景 – 有序数组

O(log n)

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;

// 有序的数组中
int binarySearch(int arr[], int val, int sz) {
	int left = 0;
	int right = sz - 1;
	int mid = 0;
	
	while (left <= right)
	{
		mid = left + (right - left) / 2;
		if (val > arr[mid])
		{
			left = mid + 1;
		}
		else if(val < arr[mid])
		{
			right = mid - 1;
		}
		else
		{
			return mid;
		}
	}
	return -1;
}

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int val = 4;
	int sz = sizeof(arr) / sizeof(arr[0]);

	int result = binarySearch(arr, val, sz);

	if (result != -1) {
		cout << "找到了,索引是: " << result << endl;
	}
	else {
		cout << "未找到" << endl;
	}

	system("pause");
	return 0;
}

本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客

(0)
何大锤的头像何大锤管理团队

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

2211932694

在线咨询: QQ交谈

邮件:hdcblog1999@163.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
网站建设中ing......