![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сравнение массивов
RDS © (2006-01-10 18:24:00)Добрый вечер.
Вопрос следующий. Имеем
var
a, // заполнен
b, // заполнен
c : array of integer; // сформировать
Массивы a,b заполнены, длина массивов в общем случае разная, вс значения элементов внутри каждого массива уникальны. Требуется сформировать на основе а и b массив с, в который войдут значения, которые имеются только в одном из массивов
RDS (2006-01-10 20:12:00) [1]Так лучше чем я сделал. Я брал два временных массива, потом убивал в них дубликаты, потом сливал в один.
Спасибо.
MBo (2006-01-10 20:07:00) [2]Сливаем массивы вместе, сортируем за NlgN, затем одним проходом выбрасываем дубликаты (путем сдвига)
RDS (2006-01-10 19:59:00) [3]Джо © (10.01.06 18:47) [5]
Не задачка. С алгоритмом не получается. Хотелось без временных массивов, пока не выходит.
Leonid Troyanovsky © (10.01.06 18:57) [6]
Массивы именно динамические. Поскольку заранее неизвестно кол-во их элементов. и процитирую самого себя :
=======================
длина массивов в общем случае разная
=======================
Впрочем все уже сделано, но мне как-то не нравится. Может кто подкинет свое решение задачи, если вдруг стало интересно.
ЗЫ. Свой вариант пока не выкладываю, дабы не повлиять на возможные ответы
Leonid Troyanovsky (2006-01-10 19:01:00) [4]
> Джо © (10.01.06 18:58) [7]
> > c : array of integer; // сформировать
> :-)
Возможно, что опчепятка.
--
Regards, LVT.
Джо (2006-01-10 18:58:00) [5][6] Leonid Troyanovsky © (10.01.06 18:57)
> Во-вторых, а вдруг, все же, не динамические массивы.
См [0]:
> c : array of integer; // сформировать
:-)
Leonid Troyanovsky (2006-01-10 18:57:00) [6]
> Джо © (10.01.06 18:47) [5]
> Ну, SetLength все-таки придется использовать. Тем более
> в свете того, что, перед нами
Во-первых, в своих предположениях мы не должны опускаться до такого.
Во-вторых, а вдруг, все же, не динамические массивы.
Тем более, что они не очень популярны в академической среде.
--
Regards, LVT.
Джо (2006-01-10 18:47:00) [7]> [4] Leonid Troyanovsky © (10.01.06 18:41)
Ну, SetLength все-таки придется использовать. Тем более в свете того, что, перед нами наверняка ученическая задачка или лабораторная работа.
Leonid Troyanovsky (2006-01-10 18:41:00) [8]
> Джо © (10.01.06 18:34) [3]
> + процедуры и функции для работы с дин. массивами: High,
> SetLength.
Скорее, цикл with SizeOf & CompareMem.
--
Regards, LVT.
Джо (2006-01-10 18:34:00) [9]> [1] Плохиш © (10.01.06 18:29)
> Надо использовать циклы и оператор сравнения на равенство.
+ процедуры и функции для работы с дин. массивами: High, SetLength.
Плохиш (2006-01-10 18:29:00) [10]Надо использовать циклы и оператор сравнения на равенство.
Johnmen (2006-01-10 18:29:00) [11]А в чём затруднение?