Поиск:

Ответ в темуСоздание новой темы Создание опроса
> найближайшие две точки, жадный алгоритм 
:(
    Опции темы
Hohhi
Дата 8.6.2009, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 25.2.2006
Где: Молдова

Репутация: нет
Всего: нет



Необходимо написать программу, которая в заданном множестве точек на плоскости находит две точки расстояние между которыми максимально/минимально.

Перебор элементарный. Хотелось бы сделать жадным методом? Возможно ли? или как-то более эффективно?
PM MAIL ICQ   Вверх
maxdiver
Дата 8.6.2009, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



Ну для двух ближайших точек простых быстрых алгоритмов точно нет. За N log N есть известный алгоритм "разделяй-и-властвуй", см., например, Кормена или Шамоса.

Для двух наиболе удаленных точек я не знаю более простого алгоритма, чем строить выпуклую оболочку (опять же за N log N) и искать ответ в ней (это можно за N сделать).
PM MAIL WWW ICQ   Вверх
Hohhi
Дата 8.6.2009, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 25.2.2006
Где: Молдова

Репутация: нет
Всего: нет



maxdiver, Ясно, с Корменом разберусь, спасибо
PM MAIL ICQ   Вверх
Hohhi
Дата 8.6.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 25.2.2006
Где: Молдова

Репутация: нет
Всего: нет



подскажи только главу, а то торможу чего то, читал когда то динамического программирования, не помню подобную задачу
PM MAIL ICQ   Вверх
maxdiver
Дата 8.6.2009, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



Это совсем не динамическое программирование, эта глава прямо так и называется "Вычислительная геометрия" (в моей версии книги - под номером 33), в ней есть 33.4 "Поиск пары ближайших точек" и 33.3 "Построение выпуклой оболочки" - то, что тебе нужно.
PM MAIL WWW ICQ   Вверх
Hohhi
Дата 8.6.2009, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 25.2.2006
Где: Молдова

Репутация: нет
Всего: нет



maxdiver, главы совпадают, спасибо
PM MAIL ICQ   Вверх
Pavia
Дата 8.6.2009, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Цитата(maxdiver @  8.6.2009,  17:35 Найти цитируемый пост)
Ну для двух ближайших точек простых быстрых алгоритмов точно нет. 

Есть. Через инверсную геометрию  задача сводиться к поиску максимальных.

Цитата(maxdiver @  8.6.2009,  17:35 Найти цитируемый пост)
Для двух наиболе удаленных точек я не знаю более простого алгоритма, чем строить выпуклую оболочку (опять же за N log N) и искать ответ в ней (это можно за N сделать).

 А вот выпуклую оболочку можно построить быстрее чем за  N log N

Это сообщение отредактировал(а) Pavia - 8.6.2009, 21:21
PM MAIL   Вверх
maxdiver
Дата 8.6.2009, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



Pavia
Ну я сказал, _простых_ нет smile Инверсная геометрия + нетривиальный алгоритм для выпуклой оболочки явно к таковым не относятся ))

Цитата
Через инверсную геометрию  задача сводиться к поиску максимальных.

Кстати, а что, разве после преобразования инверсии все расстояния станут обращениями себя же? Или почему тогда ближайшая пара станет == наиболее удаленной паре?

Цитата
 А вот выпуклую оболочку можно построить быстрее чем за  N log N

И выпуклую оболочку быстрее - разве что за O (N log H) алгоритмом Чана? Если H близко к N, то толку-то (особенно учитывая, что она под логарифмом).
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1010 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.