Изменения

Перейти к: навигация, поиск
Операции над структурой
==Операции над структурой==
===Поиск элементаближайших соседей в слое===Жадно идём по уровню в сторону запроса. '''SearchLayer'''(q, ep, ef, lc)''':''' <font color="green">// Ввод: запрос q, входная точка ep, количество ближайших соседей q ef, номер слоя lc</font> <font color="green">// Вывод: ef ближайших соседей q</font> candidates = new TreeSet() <font color="green">// вершины упорядочены по возрастанию расстояния до request </font> result = new TreeSet() visited = new HashSet() '''while''' candidates.isNotEmpty() current = candidates.getMin() furthest = result.getMax() '''if''' distance(current, q) > distance(furthest, q) '''break''' <font color="green">// мы в локальном минимуме, все остальные вершины в кандидатах ещё дальше. </font> '''for''' v : смежные с current вершины '''if''' !visited.contains(r) visited.add(v) furthest = result.getMax() '''if''' distance(v, q) < distance(furthest, q) or result.count() < ef candidates.add(v) result.add(v) if result.count() > ef result.removeLast() '''return''' result ===Поиск ближайших соседей во всей структуре===   
===Вставка элемента===
120
правок

Навигация