1.题目描述
3.7-15设有 n 个互不相同的整数,按递增顺序存放在数组 a[0…n-1]中,若存在一个下标 i(0≤i<n),使得 a[i]=i。设计一个算法找到这个下标i
#include <bits/stdc++.h>
using namespace std;
int Search(int a[], int n){
int l = 0, r = n -1, mid;
while(l <= r){
mid = (l + r) / 2;
if(a[mid] == mid)
return mid;
if(a[mid] < mid)
l = mid + 1;
else
r = mid - 1;
}
return -1;
}
int main(){
int a[]={-2,-1,2,4,6,8,9};
int n=sizeof(a)/sizeof(a[0]);
int i=Search(a,n);
if(i != -1)
cout << "找到了,下标为:" << i;
else
cout << "没有找到!";
return 0;
}