Giải pháp 1: Tìm các phép chia vuông góc giữa các cặp điểm và xây dựng cách sắp xếp các đường thẳng này. Sự sắp xếp có các ô Θ ( n 4 ) , trong đó thứ tự sắp xếp là không đổi. Vì vậy, xây dựng cấu trúc dữ liệu vị trí điểm để sắp xếp và trang trí mỗi ô theo thứ tự được sắp xếp sẽ được trả về cho các điểm trong ô đó. Các đơn hàng được sắp xếp giữa các ô liền kề chỉ khác nhau trong một lần chuyển vị, do đó bạn có thể sử dụng cấu trúc dữ liệu liên tục để cho phép biểu diễn của các đơn hàng được sắp xếp này để chia sẻ không gian. Tổng dung lượng là O ( n 4 ) và thời gian truy vấn là OΘ(n2)Θ(n4)O(n4) .O(logn)
Giải pháp 2: Chọn một mẫu ngẫu nhiên của các phép chia vuông góc giống nhau này, xây dựng sự sắp xếp của chúng và phân vùng mỗi ô sắp xếp theo các đoạn thẳng đứng qua mỗi đường chéo của hai đường được lấy mẫu. Phân vùng kết quả có các ô Θ ( n 2 ) , mỗi ô có xác suất cao được vượt qua bởi các phép chia không ghép đôi O ( n ) . Trang trí mỗi ô của phân vùng theo thứ tự sắp xếp hợp lệ của các điểm khi được xem từ một số x trong ô. Tổng không gian là O ( n 3 ) .Θ(n)Θ(n2)O(n)O(n3)
Bây giờ, để thực hiện truy vấn, xác định vị trí điểm truy vấn trong phân vùng, tìm kiếm thứ tự được lưu trữ với ô phân vùng và sử dụng thuật toán sắp xếp so sánh cây Cartesian của Levcopoulos & Petersson (1989) bắt đầu với thứ tự được lưu trữ này. Thời gian cho bước này tỷ lệ thuận với trong đó k i là số điểm không theo thứ tự với điểm y i . Nhưng ∑ k i là O ( n ) (mỗi bisector không ghép đôi gây ra nhiều nhất một cặp điểm không theo thứ tự), vì vậy thời gian truy vấn∑iO(1+logki)kiyi∑kiO(n) cũng là O ( n ) .∑iO(1+logki)O(n)