二分查找的递归和非递归实现

 1 int BinSearch(int Array[],int SizeOfArray,int key/*要找的值*/)
 2 {
 3     int low=0,high=SizeOfArray-1;
 4     int mid;
 5     while (low<=high)
 6     {
 7         mid = (low+high)/2;
 8         if(key==Array[mid])
 9             return mid;
10         if(key<Array[mid])
11             high=mid-1;
12         if(key>Array[mid])
13             low=mid+1;
14     }
15     return -1;
16 }
 1 int BinSearch(int Array[],int low,int high,int key/*要找的值*/)
 2 {
 3     if (low<=high)
 4     {
 5         int mid = (low+high)/2;
 6         if(key == Array[mid])
 7             return mid;
 8         else if(key<Array[mid])
 9             return BinSearch(Array,low,mid-1,key);
10         else if(key>Array[mid])
11             return BinSearch(Array,mid+1,high,key);
12     }
13     else
14         return -1;

15 } 

原文地址:https://www.cnblogs.com/xiawen/p/3058565.html