В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
alinayusupova305
alinayusupova305
09.11.2020 07:06 •  Информатика

Реализуйте алгоритм бинарного поиска.

Входные данные
В первой строке входных данных содержатся натуральные числа N и K (0 < N, K
< 20000). Во второй строке задаются N элементов первого массива, отсортированного по возрастанию, а в третьей строке – K элементов второго массива. Элементы обоих массивов - целые числа, каждое из которых по модулю не превосходит 109

Выходные данные
Требуется для каждого из K чисел вывести в отдельную строку "YES", если это число встречается в первом массиве, и "NO" в противном случае.

Показать ответ
Ответ:
polina120805
polina120805
11.10.2020 07:12

import java.util.Arrays;

import java.util.Scanner;

public class Main {

   public static void main(String[] args) {

       Scanner in = new Scanner(System.in);

       int n = in.nextInt();

       int k = in.nextInt();

       int[] array = new int[n];

       int[] array1 = new int[n];

       for (int i = 0;i < array.length;i++){

           array[i] = in.nextInt();

       }

       for (int i = 0;i < k;i++){

          array1[i] = in.nextInt();

           System.out.println(binarySearch(array,array1[i]));

       }

        }

   static String binarySearch(int[] sortedArray, int key) {

       int index = -1;

       int low = 0;

       int high = sortedArray.length - 1;

       while (low <= high) {

           int mid = (low + high) / 2;

           if (sortedArray[mid] < key) {

               low = mid + 1;

           } else if (sortedArray[mid] > key) {

               high = mid - 1;

           } else if (sortedArray[mid] == key) {

              return "YES";

           }

       }

       return "NO";

   }

}

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота