W jaki sposób mogę uzyskać dostęp do danych, które są przechowywane przy użyciu porządku Z, z złożonością czasu O (1) w tablicy? Potrzebuję szybkiego dostępu do każdego elementu przez ich współrzędne. Czy istnieje jakiś szybszy sposób uzyskania dostępu do tych danych, a nie za pomocą przesunięcia bitów?Współrzędne krzywej o kolejności Z
Jednym ze sposobów będzie za pomocą tabel przeglądowych (mam statyczną rozmiaru danych)
EDIT:
Jeden pomysł miałem teraz jest przechowywanie liście w kolejności przy użyciu y * SIZE + x
EDIT 2 .:
ja storying bity w drzewie quad w std :: bitset. Próbuję sprawdzić, czy niektóre dane są dostępne. w matrycach o rozmiarze 128 * 128. Tak więc mogę pominąć wyszukiwanie w macierzy bruteforce pustych danych.
proszę podać więcej informacji. Czy przechowujesz rzeczy tylko ze współrzędnymi całkowitymi z lub używasz liczb rzeczywistych? Jaka jest liczba obiektu (górna granica)? Jaka złożoność jest potrzebna w zapytaniu (tj. Ile zapytań oczekujesz)? Słownik –
? lub tabeli odnośników .. –
Właściwie chciałbym uzyskać dostęp do danych w tym miejscu tak szybko, jak to możliwe, ponieważ może on pomieścić 32k elementów (bitów) na jedną porcję. I te dane mogą być w jednym przejściu dostępnym 6 lub więcej razy. To, do czego próbuję uzyskać dostęp, to liście quadów w tablicy! – BlackCat