數(shù)據(jù)結(jié)構(gòu)折半查找算法 折半查找算法及代碼?
折半查找算法及代碼?#include<iostream>#使用命名空間std模板<class T>int BinarySearch(ta[],const T&x,int n,in
折半查找算法及代碼?
#include<iostream>
#使用命名空間std
模板<class T>
int BinarySearch(ta[],const T&x,int n,int left,int right)
{
if(left>=right)
return-1
else
if(a[(left right)/2]==x)
return else if(x>=(left right)/2)
return二進(jìn)制搜索(a,x,n,(left right)/2 1,right)
else if(x<(left right)/2)
返回二進(jìn)制搜索(a,x,n,left,(left right)/2-1)
}
int main()
{
int a[MAXu SIZE
]int i,len,x,p
cin gt>len for(i=0i<leni))
cin>>a[i
]cin>>x
p=二進(jìn)制搜索(a,x,len,0,len-1)
if(p==-1)
cout<<“cout<”cout<”cout<;“cout<”cout<!“<<endl
else
cout<<p 1<<endl
返回0
}