2016-01-24 5 views
0

Я пишу UB Tree для развлечения, используя Z Order Curve. В настоящее время он способен хранить точки в любом количестве измерений, и при запросе он выполняет наивный поиск между двумя индексами Z, фильтруя и отбрасывая любые ложные срабатывания. Я хотел бы реализовать BIGMIN и LITMAX, чтобы свести к минимуму количество ложных срабатываний, которые оно пересекает, но я не могу найти никакой информации о том, как реализовать их таким образом, чтобы это не ограничивало мое дерево хранением двухмерных данных. Например, как this whitepaper, так и this blog post описывают их реализацию в терминах, которые сильно привязаны к работе с двумерными значениями.При расчете Z Order, как реализовать BIGMIN и LITMAX для более чем двух измерений?

Существует ли размерность-агностический способ реализации этой функции?

ответ

1

Для 2-мерного измерения вы можете обрабатывать z-кривую как номер основания-4 (четырехкассетная). IMO, когда вы сортируете квад-ключ слева направо, он похож на litmin и bigmin. Для n-мерного рассмотрения это как base-n число.