Перепутанный с алгоритмом Диаграммы Вороного (sweepline Fortune)

Вы можете попробовать что-то вроде этого:

@Modifying
@Query("update EARAttachment ear set ear.status = ?1 where ear.id = ?2")
int setStatusForEARAttachment(Integer status, Long id);

Вы также можете использовать именованные параметры, например:

@Modifying
@Query("update EARAttachment ear set ear.status = :status where ear.id = :id")
int setStatusForEARAttachment(@Param("status") Integer status, @Param("id") Long id);

Возвращаемое значение int - это количество строк, которые были обновлены , Вы также можете использовать void return.

См. Больше в справочной документации.

9
задан Tunaki 15 November 2015 в 22:25
поделиться

4 ответа

Это кажется сложным, потому что это сложно! Вам не нужны хэш-таблица или потоки, но вам понадобится очередь приоритетов (обычно реализованная как куча и доступная как в стандартных библиотеках java, так и в Python) и дерево, которое позволяет выполнять запросы диапазона в O (log n) (Те, что в стандартных библиотеках, на самом деле не подходят, потому что вы не можете добраться до их внутреннего устройства; я бы предложил реализовать дерево AA ). А сам алгоритм все еще довольно сложен.

Можете ли вы запустить внешнюю программу? Если так, то я действительно предлагаю вам оставить тяжелую работу QHull , что очень хорошо для диаграмм Вороного. К сожалению, намного лучше, чем мы когда-либо будем.

1
ответ дан 4 December 2019 в 10:34
поделиться

Диаграмма Вороного - это просто диаграмма, а не структура данных или алгоритм. Я не думаю, что он подходит для поиска ближайшей точки в наборе. Построение диаграммы не изменит асимптотическую сложность вашей проблемы, хотя сделает вашу задачу более сложной и менее эффективной с точки зрения памяти. Вам лучше положить свои очки в квадродерево или что-то подобное. Если вы ищете алгоритмы, проблема, которую вы пытаетесь решить, называется «пространственное индексирование». «Ближайшая точка» - одна из задач, решаемых квадродеревьями и другими пространственными индексами.

1
ответ дан 4 December 2019 в 10:34
поделиться

В прошлом году я довольно много смотрел на диаграммы Вороного, и я определенно могу оценить путаницу. Существует несколько реализаций алгоритмов построения диаграмм Вороного. См. на этой странице для пары, а также здесь . Как уже упоминалось twic, Qhull определенно заслуживает внимания - MATLAB использует его для генерации диаграмм Вороного, триангуляции Делоне и подобных забавных вещей.

0
ответ дан 4 December 2019 в 10:34
поделиться

Вот еще одна реализация в Ruby и C, включая визуализацию:

http://github.com/abscondment/rubyvor/

0
ответ дан 4 December 2019 в 10:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: