对数组区间 左闭右闭、左闭右开 的讨论
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;
}
本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客