![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
floopless |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.10.2008 Репутация: нет Всего: нет |
Дано два массива. Найти наименьшее среди тех элементов первого массива, которые не входят во второй массив.
Я мыслю как - взять первый массив, отсортировать по возрастанию, дальше взять из него первый (наименьший элемент) и сравнивать со всеми элементами второго массива. Если элементы окажутся равны - брать следующий и снова сравнивать. В противном случае - вывести первый элемент. Стопорюсь на сравнении - подскажите как правильно сделать.. Или есть такой вариант решения - тоже пришел в голову - сравнить оба массива на предмет одинаковых элементов, находя - удалять такой элемент из первого массива. Дальше отсортировать полученный массив по возрастанию и вывести первый (наименьший элемент). Но тут проблемма - удаление элемента из массива.. Подскажите вообщем.. и вообще, какой способ лучше, оптимальнее..? |
|||
|
||||
Уттара |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 10.12.2008 Репутация: нет Всего: 1 |
Сравниваешь два массива если элемент из первого массива не найден во втором массиве то записать его в третий массив, потом третий массив сортируешь и самое первое число смотришь.
|
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 7 Всего: 50 |
Простейший и железный алгоритм:
A,B - массивы C - пустой массив Пробегаем в цикле по A, каждый элемент ищем в B. Если находим A[n], отсутствующий в B элемент, добавляем этот элемент A[n] в C. Пробегаем один раз C и находим минимальный элемент. -------------------- |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
A,B - массивы
перебегаем массив А для каждого элемента - ищем в В если не наши сравниваем элимент с мин. если меньше то это новый мин Добавлено через 1 минуту и 1 секунду или перебегаем массив А для каждого элемента - если он меньше мин то ищем его в В если не наши то это новый мин -------------------- Кольцов Виктор Владимирович |
|||
|
||||
floopless |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.10.2008 Репутация: нет Всего: нет |
А как быть с третьим массивом? Сколько выделить под него места? Естли ведь выделить больше, остальные элементы будут нули..и как тогда определить минимальный..
|
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 7 Всего: 50 |
А третий динамическим сделать. -------------------- |
|||
|
||||
Уттара |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 10.12.2008 Репутация: нет Всего: 1 |
||||
|
||||
floopless |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.10.2008 Репутация: нет Всего: нет |
У меня массивы указателей.. напиши как использовать TList..
|
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
Добавлено через 3 минуты и 26 секунд и не забыть free когда список станет не нужен -------------------- Кольцов Виктор Владимирович |
|||
|
||||
floopless |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.10.2008 Репутация: нет Всего: нет |
Вообщем вот что получилось - (Дано два массива. Найти наименьшее среди тех элементов первого массива, которые не входят во второй массив)
Вроде все работает..но посмотрите на код плз..не нагородил ли я там глупых конструкций.. ![]()
Это сообщение отредактировал(а) floopless - 25.11.2009, 00:32 |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 7 Всего: 50 |
Я бы, честно говоря, вынес отдельные участки кода в доп. функции.
-------------------- |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 7 Всего: 50 |
Раз уж ты всё сделал, вот посмотри на короткий вариант:
-------------------- |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
Демо,
так ведь оптимальнее -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 7 Всего: 50 |
-------------------- |
|||
|
||||
amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 1 Всего: 4 |
Это сообщение отредактировал(а) amsoft - 25.11.2009, 10:23 --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |