就一个二分
#include <bits/stdc++.h>
using namespace std;
int pp[20010];
int _search(int a[], int low, int high, int key);
int main()
{
int n, k, m;
cin >> n;
for(int i = 1; i <= n; i++)
{
scanf("%d", &pp[i]);
}
cin >> k;
while(k --)
{
int key;
cin >> key;
if(_search(pp,1,n,key) != -1)
cout << _search(pp,1,n,key) << endl;
else cout << "No Found!" << endl;
}
return 0;
}
int _search(int a[], int low, int high, int key)
{
if(low <= high)
{
int mid = (low+high)/2;
if(a[mid] == key)
{
return mid;
}
else if(a[mid] > key)
_search(a,low,mid-1,key);
else
_search(a,mid+1,high,key);
}
else return -1;
}
/*int _search(int a[], int low, int high, int key)
{
while(low <= high)
{
int mid = (low+high)/2;
if(a[mid] == key)
{
return mid;
}
if(a[mid] > key)
high=mid-1;
else low=mid+1;
}
return -1;
}*///2种实现
顺序表应用6:有序顺序表查询
最新推荐文章于 2020-03-14 15:49:09 发布
