Можно ли добавить ввод stdin в список в Θ (n) Python - PullRequest
0 голосов
/ 22 февраля 2019

У меня проблема с добавлением элементов в список.Он должен использовать стандартный ввод и находиться в Θ (n).Я, кажется, только могу получить это в Θ (n ^ 2).Это мой код:

for i in range(int(r1)): # size of list being made
    for line in sys.stdin.readline().strip().split(" "):
        a.append(line)
Input:  Output: [1, 2, 3]
1
2
3

Насколько я знаю, это в Θ (n ^ 2).Я попытался сделать это:

for i in range(int(r1)): # size of list being made
    a.append(sys.stdin.readline().strip().split(" "))
Input:  Output: [[1], [2], [3]]
1
2
3

Поскольку элементы второй попытки находятся в своих собственных подсписках, они не работают для остальной части моей программы.Любое adivce?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Этого нет ни в Θ (n), ни в Θ (n ^ 2).Сложность зависит от множества различных переменных: размера создаваемого списка и количества пробелов в каждой строке стандартного ввода.Внешний цикл for выполняется количество раз в списке;Тело этого цикла выполняет число пробелов на каждой строке количество раз.Таким образом, ваша сложность больше похожа на Θ (r * k_i) для всех i в [0, r], где k_i - количество пробелов в i-м stdin.

0 голосов
/ 22 февраля 2019

Вы пытались использовать расширение вместо добавления?

a.extend(sys.stdin.readline().strip().split(" "))

Объяснение в этом вопросе

Вы также можете проверить этот шпаргалку для обозначения сложности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...