Existe em uma fila de prioridade inteira que usa palavras de espaço com as seguintes operações, todas no pior caso e sem acesso à aleatoriedade:
createEmptyQueue
em para alguma constante .insert
em .deleteMin
em , onde é a diferença entre a menor e a segunda menor chave.
Além disso, uma vez que uma tecla esteja sujeita a a deleteMin
, todas as inserções adicionais serão .
Trabalho relatado:
"Pesquisas e atualizações locais rápidas de Boseed Universes" , de Bose et al. , Que é mais rápido do que eu preciso, deleteMin
mas mais lento do que eu preciso insert
.
Brodnik et al., "Pior fila de prioridade de tempo constante" , que usa a exótica "memória Yggdrasil". Para os fins desta pergunta, estou interessado em mais modelos de RAM inteira padrão.
"Fila de tempo de multiprocesso" de Brodnik e Karlsson , que limita a inserção a elementos com chaves em , onde é o valor mínimo chave.
Observe que isso é bastante simples com uma tabela de hash, mas que usa amortização e aleatoriedade:
- Filas são pares de uma tabela de chaves hash e uma cópia da chave mínima.
insert
adiciona a chave à tabela de hash e atualiza a cópia mínima da chave, se apropriado.deleteMin
procura a chave mínima na tabela de hash e procura a próxima chave mínima pesquisando em ordem.