Làm cách nào tôi có thể truy cập dữ liệu đang được lưu trữ sử dụng Z-order với độ phức tạp O (1) trong mảng? Tôi cần truy cập nhanh vào từng phần tử theo tọa độ của chúng. Tôi có cách nào nhanh hơn để truy cập dữ liệu này hơn là sử dụng khi chuyển bit?Z-order-curve tọa độ
Một cách sẽ được sử dụng các bảng tra cứu (i có kích thước tĩnh của dữ liệu)
EDIT:
Một ý tưởng tôi đã có ngay bây giờ là để lưu trữ lá theo thứ tự sử dụng y * SIZE + x
EDIT 2 .:
tôi storying bit trong cây quad trong std :: bitset. Tôi đang cố gắng kiểm tra nếu một số dữ liệu có sẵn. trong ma trận có kích thước 128 * 128. Vì vậy, tôi có thể bỏ qua tìm kiếm ma trận bruteforce cho dữ liệu trống.
vui lòng cung cấp thêm thông tin. Bạn chỉ lưu trữ mọi thứ ở tọa độ z nguyên hoặc bạn sử dụng số thực? Số đối tượng (giới hạn trên) là gì? Bạn cần sự phức tạp nào đối với truy vấn (nghĩa là bạn có bao nhiêu truy vấn)? –
từ điển? hoặc tra cứu bảng .. –
Thực ra tôi muốn truy cập dữ liệu tại vị trí đó nhanh nhất có thể bởi vì nó có thể chứa 32k phần tử (bit) cho mỗi một đoạn. Và dữ liệu này có thể trong một lần truy cập được truy cập từ 6 lần trở lên. Những gì tôi đang cố gắng truy cập là lá của cây quad trong mảng! – BlackCat