刚学算法,把自己写的算法整理一下,写的不太好。
二分法:
#include<iostream>
using namespace std;
#define N 10
int Binarysearch(int *t,int x)
{
int low=1,high=N,j=0,mid;//j是查找到的元素的下标,初始为0
while(low<=high&&j==0)//没查到
{
mid=(low+high)/2;
if(x==*(t+mid))
j=mid;
else
{
if(x<*(t+mid))
high=mid-1;
else
low=mid+1;
}
}
return j;
}
void main()
{
int a[N];
int *t,j,x;
cout<<"请输入要搜索的数组元素:"<<endl;
for(int i=0;i<N;i++)
cin>>a[i];
cout<<"请输入要搜索的元素:"<<endl;
cin>>x;
t=a;
j=Binarysearch(t,x);
cout<<j;
}