Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kruglov1
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 38
#1

Определить, встречается ли каждое из заданных чисел в массиве (бинарный поиск) - C++

16.02.2015, 20:17. Просмотров 781. Ответов 4
Метки нет (Все метки)

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

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

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

Примеры
входные данные
10 5
1 2 3 4 5 6 7 8 9 10
-2 0 4 9 12
выходные данные
NO
NO
YES
YES
NO
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2015, 20:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Определить, встречается ли каждое из заданных чисел в массиве (бинарный поиск) (C++):

Дан массив целых чисел. Определить все уникальные числа в массиве и сколько раз каждое из них встречается в массиве. - C++
Написать программу для решения следующей задачи. Дан массив целых чисел. Определить все уникальные числа в массиве и сколько раз каждое из...

Проверить, есть ли в массиве А [n] числа В и С и определить, какое из чисел встречается в массиве чаще - C++
1. Проверить, есть ли в массиве А числа В и С и определить, какое из чисел встречается в массиве чаще.

Определить какое из чисел встречается в массиве чаще - C++
Помогите написать код. Проверить есть ли в массиве А числа В и С и определить, какое из чисел встречается в массиве чаще

Определить, какое из чисел встречается в массиве чаще всего - C++
8. Элементы массива расположить в обратном порядке, не используя дополнительный массив. Написать программу, в которой исходный массив...

Определить модуль какого из двух чисел встречается в числовом массиве чаще - C++
Помогите пожалуйста решить 2 задачи на c++. 1.Необходимо составить алгоритм,который определяет ,модуль какого из двух данных чисел a или...

Поиск числа в двумерном массиве (бинарный поиск) - C++
Произвожу поиск элемента в массиве двумя способами: линейным(последовательным) поиском и бинарным(двоичным). Первый работает на ура. Второй...

4
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
16.02.2015, 20:47 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream> 
#include <algorithm> 
using namespace std; 
int main() 
{ 
    int v[10]={1,2,3,4,5,6,7,8,9,10}; 
    int s[5]={-2,0,4,9,12};
    bool found; 
    for (int i = 0; i < 5; ++i) 
    { 
        found = binary_search(v , v+10, s[i]) ;
        if(found)
            cout<<"YES\n";
        else
            cout<<"NO\n";
    } 
    system("pause");
    return 0;
}
0
kruglov1
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 38
16.02.2015, 21:12  [ТС] #3
А как реализовать ввод чисел в каждый массив?
0
tnk500
114 / 118 / 25
Регистрация: 25.08.2012
Сообщений: 1,294
Завершенные тесты: 3
16.02.2015, 21:16 #4
kruglov1, простите, в хоть немного с языком знакомы?
C++
1
2
3
4
    for(int i = 0; i < sizeOfFirstArray; ++i)       //вводим в первый массив
        cin >> array1[i];
    for(int i = 0; i < sizeOfSecArray; ++i)         //вводим во второй
        cin >> array2[i];
0
kruglov1
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 38
16.02.2015, 21:26  [ТС] #5
То есть вот такой код.. но выдает ошибку при вводе чисел в массив
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int v, s;
    cin >> v >> s;
    int a[v] , b[s];
    for (int i = 0; i < v; i++)
    {
        cin >> a[i];
    }
    for (int i = 0; i < s; i++)
    {
        cin >> b[i];
    }
    bool found;
    for (int i = 0; i < 5; ++i)
    {
        found = binary_search(v , v+10, s[i]) ;
        if(found)
            cout<<"YES\n";
        else
            cout<<"NO\n";
    }
    system("pause");
    return 0;
}
Добавлено через 9 минут
Ввод исправил, теперь ответ не сходится, в чем проблема?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int n, m;
    int v[n];
    cin >> n >> m;
    for (int i = 0; i < n; i++)
    {
        cin >> v[i];
    }
    int s[m];
    for (int i = 0; i < m; i++)
    {
        cin >> s[i];
    }
    bool found;
    for (int i = 0; i < 5; ++i)
    {
        found = binary_search(v , v+10, s[i]) ;
        if(found)
            cout<<"YES\n";
        else
            cout<<"NO\n";
    }
    system("pause");
    return 0;
}
0
16.02.2015, 21:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2015, 21:26
Привет! Вот еще темы с ответами:

Бинарный поиск в массиве с++ - C++
Помогите, пожалуйста с задачей: Создать массив из 20-ти елементов, инициализировать массив. 1) Найти значение, которое есть в нем. 2)...

Бинарный поиск в массиве - C++
Помогите нужна программа по поиску числа в массиве (бинарным методом). Очень очень нужно:(

Бинарный поиск в одномерном массиве - C++
Заполнить одномерный массив из n элементов по формуле соотв-ей вашему варианту задания. Размерность задать в виде именованной константы. ...

Бинарный поиск числа в массиве - C++
Дан упорядоченный массив чисел от 0 до 100. Необходимо выполнить бинарный поиск числа 25. Как его реализовать? Я знаю, что в теории должно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru