Предмет: Информатика, автор: sdihsfd



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

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

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

Ответы

Автор ответа: rightqwer12
3

Ответ:

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

   }

}

Объяснение:

Похожие вопросы
Предмет: Русский язык, автор: Лера1587
Предмет: Русский язык, автор: Аноним

Запишите предложения,вставляя пропущенные буквы и недостающие знаки препинания.Вводные слова обозначьте буквами вв.Кажется шепчет колосья друг другу:"Скучно нам слушать осеннюю вьюгу".Действительно ночью полил дождь, который продолжался и весь следующий день.Из краткого продолжения Несторовой записи мы узнаём , что (во) первых вятичи,жившие на лесной окрайне средневековой Руси,были в основном земледельцами и (во) вторых так было ещё во времена Святослава.С (не) запамятных времён по верховья и притокам Оки жило это востночн-славянское племя быть может самое отважное,предприимчивое и мобильное среди сородничей.Словарь В.И.Даля явление несомненно исключительное и,в некотором роде,единственное.Книга по словам А.И.Герцена является духовным завещанием одного поколения другому.К сожалению день рождения только раз в году.Шоссе прямо скажем не было скоростным