Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2015, 22:44   #11
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
1. Ищем мы в отсортированном массиве A. А шаблон поиска берём из неупорядоченного B. Если в B есть дубликаты, да ещё и присутствующие в A, то они будут выведены несколько раз в хаотичном порядке.
Ага. Прекрасное замечание..
Тогда давай так :
Будем использовать С++шный шаблон - set. Позволь сразу пояснить, эта структура позволяет находить, удалять, вставлять элемент за O(log N). Имеет это чудо вид дерева.. Вот..
Но есть один момент, который позволит решить 1-ую проблемку : set игнорирует дубликаты

Вот и все
Даже сортировка будет не нужна. Просто будет по одному элементы добавлять в set.

Цитата:
2. Несмотря на простоту идеи бинарнрго поиска, он сложен в отладке - там есть нюансы. Помню, что долго не мог справится со строгими и нестрогими неравенствами. А наш ТС - ещё в синтаксисе "плавает".
Я рассматриваю тему, в первую очередь, не как возможность помочь, а как повод развлечься решением, дискуссией
Поэтому позволь не засчитать этот аргумент)

Цитата:
Хотя, по моему мнению, школьники и студенты-далеко-не-программисты изучают Pascal и VBA
Видимо не все
Poma][a вне форума Ответить с цитированием
Старый 04.02.2015, 23:14   #12
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

А этот шаблон сходен по операциям с паскальными множествами? Если да, то от программы совсем ничего не остаётся - только ввод, умножение (пересечение) и вывод.
FPaul вне форума Ответить с цитированием
Старый 04.02.2015, 23:26   #13
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Думаю, ты спросил не об этом, но всё же на всякий :
Паскалевское множество - это битовый массив. Плюсовский вариант - намного сложнее. Там дерево и плюшки к нему

Теперь про твой вопрос :
Угу.
Будет просто set<int> s;
Дальше в цикле int t; cin >> t; s.insert(t);
А потом уже ищем :
if (s.find(s.begin(), s.end(), t) != s.end()) вывести
И еще можно удалять элемент, чтобы повторно его не выводить s.erase(а тут нужен итератор, который мы видимо будем сохранять до развилки, а затем использовать и в развилке и при удалении)

Программа станет очень короткой..

Уж пардон за код.. С телефона не ахти
Poma][a вне форума Ответить с цитированием
Старый 05.02.2015, 00:07   #14
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Да. Об этом. Не вдаваясь во внутреннее представление.
Думал, что раз для задачи ищем пересечение множеств, то можно было бы как в паскале: заменить массивы на множества А и В, а потом результат функции Result:=( (A*B)<>[]) и распечатка пересечения в цикле. Конечно, у паскаля там сильные ограничения. Но в С реализация иная и ограничений почти нет. Может в С есть подобная реализация пересечения, тогда и от поиска можно отказаться.
Хотя с исчезновением ТС это носит теоретический характер.
FPaul вне форума Ответить с цитированием
Старый 05.02.2015, 00:14   #15
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Можно тогда вот так :
Прочитать два мпссива, отсортировать, бахнуть
Poma][a вне форума Ответить с цитированием
Старый 05.02.2015, 00:43   #16
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Спасибо.
По ссылке как бонус к теории готовое решение задачи.
FPaul вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Нужна функция =сцепить(), только с условием Snekich Microsoft Office Excel 8 20.11.2011 18:18
одномерные массивы innaa639 Помощь студентам 7 18.10.2011 10:34
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
C++/ Одномерные массивы BennyBenassy Общие вопросы C/C++ 6 23.02.2009 14:27