zoukankan      html  css  js  c++  java
  • 二分查找练习

    题目描述

    输入数组长度 n 输入数组      a[1...n] 输入查找个数m 输入查找数字b[1...m]   输出 YES or NO  查找有则YES 否则NO 。 
    输入描述:
    输入有多组数据。
    每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。


    输出描述:
    如果在n个数组中输出YES否则输出NO。

    输入例子:
    5
    1 5 2 4 3
    3
    2 5 6

    输出例子:
    YES
    YES
    NO

    代码:
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class 查找 {
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            while (in.hasNext()) {
                int count = in.nextInt();
                int[] num = new int[count];
                for (int i = 0; i < count; i++) {
                    num[i] = in.nextInt();
                }
                Arrays.sort(num);
                int n = in.nextInt();
                for (int a = 0; a < n; a++) {
                    int flag = in.nextInt();
                    if(search(num,flag))
                        System.out.println("YES");
                    else
                        System.out.println("NO");
    
                }
            }
    
        }
    
        /**
         * 二分查找
         */
        public static boolean search(int[] num, int flag) {
            int low = 0, high = num.length - 1;
            while (low <= high) {
                int middle = (low + high) >> 1; // 相当于(low+high)/2
                if (flag == num[middle])
                    return true;
                else if (flag < num[middle])
                    high = middle - 1;
                else
                    low = middle + 1;
            }
            return false;
    
        }
    
    }

    
    
  • 相关阅读:
    面向对象介绍
    常用模块2
    常用模块1
    常用模块3
    模块导入以及常用模块
    模块介绍
    Astra: Apache Cassandra的未来是云原生
    麦格理银行借助DataStax Enterprise (DSE) 驱动数字化转型
    Apache Cassandra使用报告2020
    比较Apache Cassandra的压力测试工具
  • 原文地址:https://www.cnblogs.com/ygh1229/p/5710485.html
Copyright © 2011-2022 走看看