A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liulunjiang 中级黑马   /  2015-10-24 09:19  /  547 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

main.c
  1. #include <stdio.h>
  2. #include "findbyhalf.h"

  3. int main(int argc, const char * argv[]) {
  4.     int arr[]={11,22,33,44,55,66,77,88,99,100};
  5.     int location=locationSearch(arr, 10, 12);
  6.     printf("%d\n",location);
  7.     return 0;
  8. }
复制代码


findbyhalf.c
  1. #include "findbyhalf.h"

  2. int locationSearch(int arr[],int len,int goal)
  3. {
  4.     int low=0,high=len-1,mid;

  5.     while (low<=high)
  6.     {
  7.         mid=(low+high)/2;
  8.         if (goal>arr[mid]){
  9.             low=mid+1;
  10.         }else if(goal<arr[mid]){
  11.             high=mid-1;
  12.         }else{
  13.             return mid;
  14.         }
  15.     }
  16.     return -1;
  17. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马