Plus à cette question sur le comptage d'inversion , j'ai trouvé un article qui prouve une limite inférieure sur la complexité de l'espace pour tous les algorithmes de streaming (exacts) . J'ai affirmé que cette limite s'étend à tous les algorithmes de temps linéaire. C'est un peu audacieux car en général, un algorithme de temps linéaire peut sauter à volonté (accès aléatoire) qu'un algorithme de streaming ne peut pas; il doit enquêter sur les éléments dans l'ordre. Je peux effectuer plusieurs passes, mais seulement constamment plusieurs (pour une exécution linéaire).
Par conséquent ma question:
Chaque algorithme de temps linéaire peut-il être exprimé comme un algorithme de streaming avec constamment de nombreuses passes?
L'accès aléatoire semble empêcher une (simple) construction de prouver une réponse positive, mais je n'ai pas non plus été en mesure de trouver un contre-exemple.
Selon le modèle de la machine, l'accès aléatoire peut même ne pas être un problème, au niveau de l'exécution. Je serais intéressé par les réponses pour ces modèles:
- Machine de Turing, entrée plate
- RAM, entrée sous forme de tableau
- RAM, entrée sous forme de liste chaînée