#include <iostream>
#define maxn 1000
#define NoFound -1
using namespace std;
const int Record[]={5,16,39,45,51,98,100,202,226,321,368,444,501};
struct StaticTable{
int Data[maxn];
int Length;
};
StaticTable *CreateTable(){
StaticTable *PtrT=(StaticTable*)malloc(sizeof(StaticTable));
PtrT->Length=0;
return PtrT;
}
void TablePush(StaticTable *PtrT,int num){
PtrT->Data[++(PtrT->Length)]=num;
}
int BinarySearch(StaticTable *PtrT,int K){
int left,right,mid;
left=1;
right=PtrT->Length;
while(left<=right){
mid=(left+right)/2;
if(K<PtrT->Data[mid]){
right=mid-1;
}else if(K>PtrT->Data[mid]){
left=mid+1;
}else{
return mid; //找到后返回下标
}
}
return NoFound;
}
int main()
{
StaticTable *Tbl=CreateTable();
for(int i=0;i<sizeof(Record)/sizeof(int);++i){
TablePush(Tbl,Record[i]);
}
int K;
cin>>K;
cout<<"Tbl->length = "<<Tbl->Length<<endl;
cout<<BinarySearch(Tbl,K);
return 0;
}
二分查找
最新推荐文章于 2022-03-18 22:47:14 发布