二分查找板子

来源:互联网 发布:javascript 函数 编辑:程序博客网 时间:2024/06/03 17:48

int find(int x,int y,int m) //在[x,y]区间查找关键字等于m的元素下标

{ int head,tail,mid;

  head=x;tail=y;mid=((x+y)/2);//取中间元素下标

  if(a[mid]==m) return mid;//如果中间元素值为m返回中间元素下标mid

  if(head>tail) return 0;//如果x>y,查找失败,返回0

  if(m>a[mid])  //如果m比中间元素大,在后半区间查找,返回后半区间查找结果

    return find(mid+1,tail);

  else //如果m比中间元素小,在前半区间查找,返回后前区间查找结果

    return find(head,mid-1);

}

原创粉丝点击