折半查找
2013-12-18 13:07
375 查看
#include <iostream> using namespace std; const int SIZE=50; int main() { int arr[SIZE]; int no,key; cin>>no; for(int i=0;i<no;i++) cin>>arr[i]; int min=0,max=no-1; int mid=(min+max)/2; cin>>key; while(key!=arr[mid]) { if(key>arr[mid]) min=mid+1; else max=mid-1; if(max<min) { cout<<"no find"<<endl; break; } mid=(min+max)/2; } if(max>=min) { cout<<mid<<endl; } return 0; }