搜索二分搜索

二分搜索

代码如下:

int BinarySearch(int t, int a[], int n){
  int l = 0;
  int u = n-1;
  int i = -1;
  while(1){
    if(l > u){
      i = -1;
      break;
    }
    int m = (l+u)/2;
    if(a[m] < t){
      l = m + 1;
    }else if(a[m] == t){
      i = m;
      break;
    }else{
      u = m  - 1; 
    }
    
  }
  return i;
}

   如果在数组A中找到了和t相等的元素,那么就返回改元素的索引值,如果没找到则返回-1

P.S:
  前几天看到一本讲算法的书,介绍二分搜索时,让读者花几分钟时间,来写一下代码,结果,我是写错了- -

原文地址:https://www.cnblogs.com/suiyu/p/2956137.html