Dada uma tabela de dados contendo um número muito grande de linhas, com cada linha contendo um grande número de campos, e cada campo contendo um número grande mas fixo de bits, existem vários métodos para construir uma estrutura de "índice" que as seguintes operações podem ser executadas na tabela e indexar no tempo (relativo a e ):
Inserir um novo elemento na tabela.
Remova um elemento especificado da tabela.
Dado um conjunto de valores dos campos, obtenha o primeiro registro que está na tabela com valores de campo maiores que os valores de campo especificados, quando a tabela é classificada na ordem lexicográfica com o campo 1 primeiro, o campo 2 segundo, etc.
Desejamos generalizar essa construção para que, quando a operação 3 for concluída, qualquer um dosas ordens dos campos podem ser especificadas para determinar a ordem dos registros na tabela.
Claramente, isso pode ser feito através da construção de k! índices, um para cada ordem dos campos. Em seguida, as operações levam tempo .
Queremos um algoritmo cujas operações sejam muito mais rápidas (em relação a ), preferencialmente em .
Existe tal estrutura de algoritmo / dados? Parece provável que, se existisse, alguém teria publicado e implementado até agora, mas não encontrei sinais de que exista. Por outro lado, talvez seja possível provar que esse algoritmo não existe. Mas não encontrei sinais de que essa prova exista.