Solução 1: Encontre os bissetores perpendiculares entre pares de pontos e construa o arranjo dessas linhas. A organização possui células , nas quais a ordem classificada é constante. Portanto, crie uma estrutura de dados de localização de pontos para a organização e decore cada célula com a ordem classificada que será retornada para os pontos dentro dessa célula. As ordens classificadas entre células adjacentes diferem apenas em uma única transposição, portanto, você pode usar uma estrutura de dados persistente para permitir que as representações dessas ordens classificadas compartilhem espaço. O espaço total é e o tempo de consulta é .Θ ( n 4 ) O ( n 4 ) O ( log n )Θ ( n2)Θ ( n4)O ( n4)O ( logn )
Solução 2: Escolha uma amostra aleatória de desses mesmos bissetores perpendiculares, construa seu arranjo e divida cada célula de arranjo por segmentos de linha verticais através de cada cruzamento de duas linhas amostradas. A partição resultante possui células , cada uma das quais com alta probabilidade é atravessada por bissetores não amostrados. Decore cada célula da partição com uma ordenação ordenada válida dos pontos, conforme visualizado em algum x dentro da célula. O espaço total é .Θ ( N 2 ) O ( n ) S ( n 3 )Θ ( n )Θ ( n2)O ( n )O ( n3)
Agora, para fazer uma consulta, localize o ponto de consulta na partição, procure a ordem armazenada com a célula da partição e use o algoritmo de classificação por comparação de árvore cartesiana de Levcopoulos & Petersson (1989) começando com essa ordem armazenada. O tempo para esta etapa é proporcional a que é o número de pontos que estão fora de ordem com o ponto . Mas é (cada bissetor não amostrado causa no máximo um par de pontos fora de ordem), portanto, o tempo de consulta também é .∑EuO ( 1 + logkEu)kEuyEu∑ kEuO ( n )∑EuO ( 1 + logkEu)O ( n )