递归版 二分查找
2025-09-15 19:30:04
发布于:安徽
0阅读
0回复
0点赞
#include<iostream>
#include<vector>
using namespace std;
int Find(vector<int> &nums, int target, int left, int right)
{
if(left <= right)
{
int mid = (left + right) / 2;
if(nums[mid] == target) return mid;
if(nums[mid] < target) return Find(nums, target, mid + 1, right);
if(nums[mid] > target) return Find(nums, target, left, mid - 1);
}
return -2;
}
int TwoFind(vector<int> &nums, int target)
{
return Find(nums, target, 0, nums.size() - 1);
}
int main()
{
int n;
cin >> n;
vector<int> nums(n);
for(int i = 0; i < n; i++)
{
cin >> nums[i];
}
int target;
cin >> target;
cout << TwoFind(nums, target) + 1;
}
这里空空如也
有帮助,赞一个