返回

一个函数,实现一个整形有序数组的二分查找

发布时间:2022-12-28 18:32:53 295

binary_search(int arr[],int k,int sz)

{

   //算法的实现

   int left = 0;


   int right = sz-1;


   while(left<=right)

   {

   int mid = (left+right)/2;//中间元素下标

   if(arr[mid]>k)

   {

       right = mid-1;

   }

   else if(arr[mid]

   {

       left = mid+1;

   }

   else

    {

       return mid;

    }

 }

    if(left>right)

      return -1;

}

int main()

{

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

   int k = 7;

   int sz = sizeof(arr)/sizeof(arr[0]);

   int ret = binary_search(arr,k,sz);

   if(ret == -1)

   {

       printf("找不到");

   }

   else

   {

       printf("找到了,下标是:%d\n",ret);

   }


   return 0;

}

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
基于QT的TCP传输拆包和组包算法 2022-12-28 18:13:06