120
правок
Изменения
Нет описания правки
'''Иерархия графов-представителей''' (англ. ''Hierarchical Navigable Small World graphs'') {{---}} структура данных, позволяющая за эффективно находить K почти что ближайших соседей. По своей концепции напоминает [[список с пропусками]]. ==Граф-представители=='''Граф-представитель''' (англ. ''Navigable Small World'') {{---}} граф на множестве точек в пространстве, удовлетворяющий правилу <tex>O(\log{n })</tex> рукопожатий. Т.е. средняя длина пути в графе <tex>O(\log{n})</tex> находить . На таком графе поиск K почти что ближайших соседейбудет выглядеть так:'''bool''' KNN(request)''':''' Heap = <tex> \varnothing </tex> current = случайная вершина графа '''while''' ''true'' '''for''' v : смежные с current вершины distance = getDistance(v, request) <font color="green">// getMetric(a, b) {{---}} расстояние между вершинами a и b в метрическом пространстве </font> Heap.push(key=distance, v=v) '''if''' Heap. По своей концепции напоминает [[список с пропусками]]first().key > getDistance(v, current) break '''return''' K вершин из Heap c минимальным расстоянием ==Описание структуры==
==Операции над структурой==
===Поиск элемента===
===Вставка элемента===