C语言实现二分查找

来源:互联网 发布:mac合盖放歌 编辑:程序博客网 时间:2024/05/22 17:10
  1. #include <stdio.h>  
  2.   
  3. /*binsearch : find x in v[0] <= v[1] <= ... <= v[n-1] */  
  4. int binsearch(int x, int v[], int n){  
  5.     int low, high, mid;  
  6.   
  7.     low = 0;  
  8.     high = n - 1;  
  9.   
  10.     while ( low <= high ) {  
  11.         mid = (low + high) / 2;  
  12.         if(x < v[mid]){  
  13.             high = mid - 1;  
  14.         }  
  15.         else if(x > v[mid]){  
  16.             low = mid + 1;  
  17.         }  
  18.         else/*found match*/  
  19.             return mid;  
  20.         }  
  21.     }  
  22.   
  23.     return -1;  
  24. }  
  25.   
  26. int main(){  
  27.     int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};  
  28.     int location;  
  29.     int number = 4;  
  30.     location = binsearch(number, array, 11);  
  31.     printf("%d\n", location);  
  32.     return 0;  
  33. }
0 0
原创粉丝点击