ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

蓝桥杯--二分法查找数组元素

2022-01-21 20:58:31  阅读:119  来源: 互联网

标签:蓝桥 数组 -- mid 二分法 int key data 输入


问题描述

  用递归函数实现二分法查找数组元素。
  补充:要求给定数组采用如下代码定义
  int data[200];
  for (i=0; i<200; i++)
  data[i]=4*i+6;

输入格式

  输入一个待查找的整数(该整数一定在数组data中)。

输出格式

  该整数在数组中的指标。

样例输入

一个满足题目要求的输入范例。
例1:
262
例2:
438
例3:
774

样例输出

与上面的样例输入对应的输出。
例1:
64
例2:
108
例3:
192

数据规模和约定

  输入数据中每一个数的范围。
  输入数据必须满足4*i+6,i=0,1,2,3,...,198,199。

import java.util.*;
public class Main{
    public static int find(int a[], int key, int low, int high)
    {
        int mid = (low + high) / 2; // 范围的中间值,
        if (low > high) // 范围出错,直接退出
            return -1;
        if (key == a[mid]) // 如果要找的值就是在二分处,直接输出 该序号
            return mid;
        else if (key < a[mid])
            return find(a, key, low, mid - 1); // 没找的话,范围最大值就为mid-1
        else
            return find(a, key, mid + 1, high); // 没找的话,就从mid-1开始找
    }
    public static void main(String args[]) throws Exception
    {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int data[]=new int[200];
        for ( int i = 0; i < 200; i++) // 初始化数组
            {
                data[i] = 4 * i +6;
            }

        System.out.println(find(data,n,0,200));




    }
}

标签:蓝桥,数组,--,mid,二分法,int,key,data,输入
来源: https://blog.csdn.net/weixin_42365095/article/details/122629188

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有