折半查找算法,找一个整数中的某个数字,找到返回下标,找不到返回-1;

来源:互联网 发布:赡养人类知乎 编辑:程序博客网 时间:2024/06/07 22:57


include<stdio.h>

#include<stdlib.h>

int bin_search(int arr[],int key,int sz)

{

      int left=0,right=sz-1;

      while(left<=right)

      {

             int mid=(right+left)>>1;

             if(arr[mid]<key)

                    left=mid+1;

             else if(arr[mid]>key)

                    right=mid-1;

             else

             {

                    printf("%d\n",mid);

                    break;

             }

                    

      }

return 0;

}

int main()

{

      int arr[]={1,2,3,4,5,6,7,8,9};

      int key=9;

      intret=bin_search(arr,key,sizeof(arr)/sizeof(arr[0]-1));

      if(ret==-1)

   {

         printf("not exist");

      }

      else

      {

             printf("%d\n",ret);

      }

      system("pause");

      return 0;

}

0 0