首页 > 其他分享 >用二分法寻找第7位数(数组)

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

时间:2023-11-04 16:32:57浏览次数:29  
标签:arr right 下标 int mid 二分法 位数 数组 left

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


}

标签:arr,right,下标,int,mid,二分法,位数,数组,left
From: https://blog.51cto.com/u_16329012/8183663

相关文章

  • 数组的方法 属性
    数组的方法与属性属性 length数组的长度方法把数组变成字符串//varadd=['泰山','嵩山','华山','重阳宫','西安','洲子头'];//1.把数组变为字符串//add.toString();//console.log(add.toString());把数组用join拼......
  • 【进阶算法】一维数组的前缀和
    前缀和是指数组某个索引之前的所有元素的和,是一种重要的预处理手段,使用前缀和可以快速求出数组某一个区间的和。 示例:数组arr=[8,1,3,-2,5,0,-3,6],输入m个询问,每个询问输入一对l,r。对于每个询问,要求输出原数组中从第l个数到第r个数的和。比如,第1次询问,输入[0,2],需要输出1......
  • JavaScript函数变量的生命周期,自执行函数、闭包、反转数组案例及冒泡排序案例
    一、变量的生命周期JavaScript变量的生命期从它们被声明的时间开始。局部变量会在函数运行以后被删除。全局变量会在页面关闭后被删除。二、自执行函数执行函数通常都是定义之后立即执行,以后都不再会调用,所以声明时可以省略函数名,因此自执行函数又叫匿名函数。通用的自执行......
  • 实验3 类与数组、指针
    实验任务1Point.hpp1#pragmaonce23#include<iostream>4usingstd::cout;5usingstd::endl;67classPoint{8public:9Point(intx0=0,inty0=0);10~Point()=default;1112intget_x()const;13intget_y()co......
  • 【教3妹学编程-算法题】数组中两个数的最大异或值
    3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包”2哥 :3妹,什么事呀这么开心呀。3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。2哥:是啊,都快立冬了,天气还是这么热。今年的冬天比以往来的要晚一些。3妹:晚来也是要来的,看天气预报下周要降温,估计没几......
  • 数组的定义和使用
    数组是一种容器,常用于存储一些相同类型的元素,且一旦创建不能改变大小。一般格式:<类型>变量名称 [元素数量];  列如:intnumber[10];Striingstudent[3];.......注意:元素数量必须是整数,且变量名称不能为关键字要满足命名规则......
  • 树状数组用线段树来写
    #include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=5e5+10;inta[N],tag[N<<2];struct{ struct{ intl,r,sum; }tr[N<<2]; voidpush_up(inti){ tr[i].sum=tr[i<<1].sum+tr[i<<1|1].sum; } voidbuild(inti......
  • 167. 两数之和 II - 输入有序数组
    给你一个下标从1开始的整数数组numbers,该数组已按非递减顺序排列,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是numbers[index1]和numbers[index2],则1<=index1<index2<=numbers.length。以长度为2的整数数组[index1,inde......
  • 生成红包数组
    ///<summary>///产生红包数组///</summary>///<paramname="cashCount">红包总金额</param>///<paramname="peopleNumber">红包人数</param>///<returns></returns>......
  • 数组 vs. 切片
    在Go编程语言中处理数据时,经常会遇到数组和切片。这两者是不同的数据结构,有各自的特性和用途。本文将对Go中的数组和切片进行比较,以帮助大家更好地理解它们。1.长度不同一个主要的区别是长度。在Go中,数组是具有固定长度的数据结构,一旦创建,其大小不可更改。相比之下,切片具有动态......