![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Sparco |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Помогите с нахождением пересечения массивов... Я вот попробовал, но препод говорит что неправильно! Надо найти одинаковые числа в двух массивах и записать эти одинаковые в третий,перебирать числа надо попорядку, если совпадает то переносим в третий, если не возвращаем 0....
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Массивы упорядоченные?
если да (или можно предварительно отсортировать), то: Вариант 1: Ptr1 = адрес первого массива, Ptr2 = адрес второго ЦИКЛ (пока один из указателей не вышел за пределы своего массива) IF *Ptr1 == *Ptr2, копируем в третий массив, Ptr1++, Ptr2++ ELSE IF *Ptr1 < *Ptr2 Ptr1++ ELSE Ptr2++; Если массивы не упорядочены, и сортировать нельзя, то остается только Вариант 2: Для каждого элемента первого массива Ищем его во втором массиве... -------------------- ... |
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
А значения в массивах повторяются?
|
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 1 Всего: 26 |
Sparco,покажи тот код ,что преподу показавал.Его переделовать будем
-------------------- Жизнь - печальная штука. |
|||
|
||||
| Chaos A.D. |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 16.1.2005 Где: 09 RUS Репутация: 6 Всего: 7 |
Есть пара стандартных алгоритмов из STL, можно заюзать их. На память название не помню, но по-моему это adjacent_difference из <numeric>. Посмотри этот алгоритм.
--------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest |
|||
|
||||
| Sparco |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Вот что я пытался сделать. Использовать библиотеку нельзя.... |
|||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
Возможно, в множествах у тебя не может быть повторяющихся элементов, тогда нет смысла в поиске совпадений в новом массиве. Возможно, они сразу отсортированы, тогда задача еще упрощается.
Есть ли у тебя конструктор копирования, чтобы возвращать "с" по значению ? Могут ли твои множества сортироваться в принципе ? вот два варианта, второй - это твой без флага
если нет конструктора копирования, то "с" лучше сделать динамическим Mnogestva *c=new Mnogestva (0); и возвращать указатель... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |