Solusi 1: Temukan garis-garis tegak lurus antara pasangan titik, dan buat susunan garis-garis ini. Susunan memiliki Θ ( n 4 ) sel, di mana urutan yang diurutkan adalah konstan. Jadi buat struktur data lokasi titik untuk pengaturan, dan hiasi setiap sel dengan urutan yang akan dikembalikan untuk poin dalam sel itu. Pesanan yang diurutkan antara sel yang berdekatan hanya berbeda dalam satu transposisi, sehingga Anda dapat menggunakan struktur data yang persisten untuk memungkinkan representasi dari pesanan yang diurutkan ini untuk berbagi ruang. Total ruang adalah O ( n 4 ) dan waktu kueri adalah OΘ(n2)Θ(n4)O(n4) .O(logn)
Solusi 2: Pilih sampel acak dari garis-garis tegak lurus yang sama ini, buat susunannya, dan pisahkan setiap sel susunan dengan segmen garis vertikal melalui masing-masing persilangan dua garis sampel. Partisi yang dihasilkan memiliki Θ ( n 2 ) sel, yang masing-masing dengan probabilitas tinggi dilintasi oleh O ( n ) yang tidak terbagi dua. Hiasi setiap sel partisi dengan urutan poin yang diurutkan dari beberapa x di dalam sel. Total ruang adalah O ( n 3 ) .Θ(n)Θ(n2)O(n)O(n3)
Sekarang, untuk melakukan kueri, cari titik kueri di partisi, cari pemesanan yang disimpan dengan sel partisi, dan gunakan algoritma penyortiran perbandingan pohon Cartesian dari Levcopoulos & Petersson (1989) dimulai dengan pemesanan yang disimpan ini. Waktu untuk langkah ini sebanding dengan di mana k i adalah jumlah poin yang out-of-order dengan titik y i . Tapi ∑ k i adalah O ( n ) (masing-masing bistor yang tidak di -ampleksi menyebabkan paling banyak satu pasang poin yang tidak berurutan), jadi waktu permintaan∑iO(1+logki)kiyi∑kiO(n) juga O ( n ) .∑iO(1+logki)O(n)