Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Anatoly Saveliev                     2:5020/400     22 Jul 2003  07:57:07
 To : Dmitriy Goldobin
 Subject : Re: Поиск ближайшей точки  (сабж слетел)
 -------------------------------------------------------------------------------- 
 
 Dmitriy Goldobin wrote:
 
 > 
 > Hi!
 > 
 > > ну зачем так строго - товарищ просто хотел упорядочить точки по их
 > > проекции на ось X, что вполне разумно и работает, если число точек имеет
 > > порядок 100 000.
 > 
 > ... и они распределены равномерно по плоскости. Hо в этом случае гораздо
 > эффективнее регулярная сетка.
 
 лучше вложенная, она же квадродерево - о чем ниже; и лучше не
 регулярная, а делить по медиане на прямоугольники для баланса
 
 > > Точно так же сортируются (по левому краю) и проекции
 
 > а вот в более сложных случаях, чем описано выше, это может привести к
 > затратам большим, чем даже простой перебор. Как мы будем искать при такой
 > сортировке? Ищем бинарным поиском ближайшую по X точку к искомой, вычисляем
 
 неверно, просто ищем дихотомией левую границу в сортированном массиве
 проекций на X (с некоторым epsilon), после чего линейный перебор до
 правой границы. поскольку в epsilon окрестности искомой точки ожидается
 2*epsilon/Range(x)*N точек, а скорость поиска O(log(N)), то процесс идет
 быстро, а приведенный ниже пример к данному методу контрпримером не
 является, поскольку му переберем примерно 3 точки - центральную, над
 ней, и под ней.
 
 С отрезками конечно немного посложнее, но тоже ничего экстравагантного
 
 > расстояние до нее, ограничиваем дальнейший поиск по X с двух сторон этим
 > расстоянием. Берем следующую ближайшую по X, если расстояние до нее меньше,
 > то еще ограничиваем поиск. А теперь представь - точки расположены по
 > окружности, а искомая неподалеку от центра. Hикакого ограничения по X мы не
 > добьемся и получим полный перебор ПЛЮС бинарный поиск по X в начале.
 
 кстати, то, что контрпример всегда существует, меня учили еще в школе
 (высшей). поэтому я в свое время строго по науке запрограммировал почти
 всего Препарату и Шеймоса. а потом обнаружил, что со сложными
 алгоритмами возникает большое число особых случаев, связанных с ошибками
 округления, после чего оставил только QSort, но будучи университетским
 человеком изучил реальные характеристики поиска при реальных данных - и
 с удивлением обнаружил, что матожтдание числа перебираемых точек
 примерно 6, а максимум обычно не превышает 200, поэтому с практической
 точки зрения скорость можно считать линейной. 
 
 Анатолий Савельев
 --- ifmail v.2.15dev5
  * Origin: MELT InterNetNews site (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   09 Jul 2003 00:18:35 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   09 Jul 2003 13:55:26 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   09 Jul 2003 14:41:48 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   09 Jul 2003 15:57:04 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   09 Jul 2003 16:06:28 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   09 Jul 2003 19:28:00 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   10 Jul 2003 12:18:29 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   10 Jul 2003 12:54:35 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Serge Pashkov   09 Jul 2003 16:08:20 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   09 Jul 2003 17:12:43 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Serge Pashkov   10 Jul 2003 09:54:06 
 Перетаскивание ребер и вершин. Может попроще сначала задачку?   Serge Nozhenko   10 Jul 2003 03:47:22 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   10 Jul 2003 12:25:43 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   10 Jul 2003 12:52:03 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   10 Jul 2003 14:56:37 
 Перетаскивание ребер и вершин. Может попроще сначала задачку?   Andrey Tarasevich   19 Jul 2003 05:08:06 
 Re: оЕПЕРЮЯЙХБЮМХЕ ПЕАЕП Х БЕПЬХМ. лHФЕР ОHОПHЫЕ ЯМЮВЮКЮ ГЮДЮВЙС?   Anatoly Saveliev   21 Jul 2003 09:26:08 
 Поиск ближайшей точки (сабж слетел)   Dmitriy Goldobin   21 Jul 2003 19:46:22 
 Re: Поиск ближайшей точки (сабж слетел)   Anatoly Saveliev   22 Jul 2003 07:57:07 
 Re: Поиск ближайшей точки (сабж слетел)   Dmitriy Goldobin   22 Jul 2003 11:16:04 
 Re: Поиск ближайшей точки (сабж слетел),   Anatoly Saveliev   22 Jul 2003 13:48:17 
 Re: Поиск ближайшей точки (сабж слетел),   Dmitriy Goldobin   22 Jul 2003 14:12:25 
 Re: Поиск ближайшей точки (сабж слетел)   Anatoly Saveliev   23 Jul 2003 07:58:24 
 Перетаскивание ребер и вершин. Может попроще сначала задачку?   Eugene Kurbatov   10 Jul 2003 01:10:41 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   11 Jul 2003 12:00:22 
Архивное /ru.algorithms/15289882104d.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional