//对一个大型数组进行二元搜索 #include<iostream> using namespace std; int search(const int ar[], int key,int low,int high);//声明 void sort(int [],int ); int main() { const int arsize=1000; int ar[arsize]; int key; for(int i=0;i<arsize;i++)//初始化 { ar[i]=i; } cout<<"输入你想要搜索的数字"<<endl; cin>>key; sort(ar,arsize); int result= search( ar,key,0,arsize);//输出 if(result!=-1) cout<<"搜索到了,在第"<<result<<"个位置"<<endl; else cout<<"OH!shit! 竟然没有搜索到!!"<<endl; return 0; } void sort(int ar[],int arsize) { int hold; for(int i=0;i<arsize;i++) { for(int j=0;j<arsize;j++) { if(ar[j]>ar[j+1]) { hold=ar[j]; ar[j]=ar[j+1]; ar[j+1]=hold; } } } } int search(const int ar[],int key,int low, int high)//递归~ { int midlle; midlle=(low+high)/2; if(key==ar[midlle]) return midlle; else if(key<ar[midlle]) return search(ar,key,low,midlle-1); else return search(ar,key,midlle+1,high); } 想了很久,还是看书得到了最简便的方法, 好困啊,·· 我睡了, 你们继续,, 我一定要改变这样的生活!!!