用二分法寻找第7位数(数组)
  qovg0zER1Cju 2023年11月05日 25 0

#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;


}

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
qovg0zER1Cju