0
点赞
收藏
分享

微信扫一扫

用二分法寻找第7位数(数组)

#include<stdio.h>

int main()

{

   int k=7;

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

   int sz=sizeof(arr)/sizeof(arr[0]);        //元素个数的计算公式

   int left=0;                                //左下标

   int right=sz-1;                            //右下标

   while(left<=right)                         //中间有元素

   {

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

       if(arr[mid]>k)

       {

           right=mid-1;                       //若中间元素>7,则右下标变化为mid-1

       }

       else if(arr[mid]<k)                   //如果所求数在中间元素左边

       {

           left=mid+1;                       //用中间元素加一,再一次使用二分法求值

       }

       else//mid=k

       {

           printf("找到了,下标是:%d\n",mid); //d与mid相等

           break;

       }

   }

       if(left>right)                         //如果左边大于右边,则无法找到

       {

           printf("找不到\n");

       }

       return 0;


}

举报

相关推荐

0 条评论