X周

导航

折半查找实现1

 1 /* binarySearch  
 2 05/05/13 17:24
 3 */
 4 #include<iostream>
 5 #include<cstdlib>
 6 using namespace std;
 7 int binarySearch(int *array,int low,int high,int value)// 返回value的位置,如果是-1则表示没找到 
 8 {
 9     if(low<=high){
10         int mid;
11         mid= (low+high)/2;
12         if(value==array[mid])
13             return mid;
14         else if(value<array[mid])
15             high=mid-1;
16         else
17             low=mid+1;
18         return binarySearch(array,low,high,value); 
19     }
20     else return -1;
21 } 
22 int main(){
23     int num;
24     int value;
25     while(1){    
26         cout<<"input the number of array:"<<endl;
27         cin>>num;
28         int *array=NULL;
29         array = (int *)malloc(sizeof(int)*(num));
30         cout<<"input the sorted array:"<<endl;
31         for(int i=0;i<num;i++)    cin>>array[i];
32         cout<<"input search value:"<<endl;
33         cin>>value;
34         cout<<value<<"'s postion is:"<<binarySearch(array,0,num-1,value)<<endl;    
35     }
36     return 0;
37 } 

 

posted on 2013-05-16 21:34  X周  阅读(180)  评论(0)    收藏  举报