Sobre a esta pergunta sobre a contagem de inversão , eu encontrei um papel que prova um limite inferior da complexidade espaço para todos (exatas) streaming de algoritmos . Eu afirmei que esse limite se estende a todos os algoritmos de tempo linear. Isso é um pouco ousado, pois, em geral, um algoritmo de tempo linear pode pular à vontade (acesso aleatório) que um algoritmo de streaming não pode; tem que investigar os elementos em ordem. Eu posso executar várias passagens, mas apenas constantemente várias (para tempo de execução linear).
Portanto, minha pergunta:
Todo algoritmo de tempo linear pode ser expresso como um algoritmo de streaming com constantemente muitos passes?
O acesso aleatório parece impedir que uma construção (simples) seja uma resposta positiva, mas também não consegui encontrar um exemplo contrário.
Dependendo do modelo da máquina, o acesso aleatório pode até não ser um problema, em termos de tempo de execução. Eu estaria interessado em respostas para esses modelos:
- Máquina de Turing, entrada plana
- RAM, entrada como matriz
- RAM, entrada como lista vinculada