В этом вопросе о подсчете инверсий я нашел статью, в которой доказывается нижняя оценка сложности пространства для всех (точных) потоковых алгоритмов . Я утверждал, что эта граница распространяется на все линейные алгоритмы времени. Это немного жирным шрифтом, так как в целом, алгоритм линейного времени может перемещаться по желанию (произвольный доступ), что алгоритм потоковой передачи не может; он должен исследовать элементы по порядку. Я могу выполнить несколько проходов, но только постоянно много (для линейного времени выполнения).
Поэтому мой вопрос:
Может ли каждый алгоритм линейного времени быть выражен как алгоритм потоковой передачи с постоянно большим количеством проходов?
Случайный доступ, кажется, препятствует (простой) конструкции, доказывающей положительный ответ, но я также не смог придумать контрпример.
В зависимости от модели машины, произвольный доступ может даже не быть проблемой с точки зрения времени выполнения. Мне были бы интересны ответы на эти модели:
- Машина Тьюринга, плоский ввод
- RAM, ввод в виде массива
- RAM, вход в виде связанного списка