C 语言之折半查找

来源:互联网 发布:mac不能新建文件夹 编辑:程序博客网 时间:2024/05/22 17:49

#define  COMPARE(x,y)  (((x)<(y))? -1:(((x)==(y))? 0:1))

int binsearch(array[ ], int left, int right,int searchnum)

{

  int middle;

 int tmp;

while(left<=right)

{

     middle=(left+right)/2;

     tmp = array[middle];

     switch(COMPARE(searchnum,tmp))

{

    case -1: right=middle-1;

                   break;

    case 0:  return middle;

    case 1:left=middle+1;

}

  }

return -1;

}

0 0
原创粉丝点击