Python

Не понимаю как выявить у кода (алгоритма ) сложность кто поможет с решением и объяснит как получил (выявил) Python

1-код) n = int(input()) m = int(input()) cnt = 0 for i in range(n): for j in range(m): cnt += 1 print(cnt)
2-код)
n = int(input()) ans = n * n + 100 ans -= 200 ans *= ans if (ans < 1000000): ans *= 2
3-код)
n = int(input()) m = int(input()) k = 1000 for i in range(n): for j in range(m): k += 100 for i in range(m): for j in range(m): k -= 100
1. Цикл по j выполняет m операций, в то же время это цикл запускается в цикле по i n раз, т.е. выполняется m*n раз то что в цикле по j, сложность O(mn)
2. Тут просто команды последовательные, количество операций не зависит от входных данных, сложность O(1)
3. Без форматирования не понять, ответ может быть либо O(m^2) либо O(nm^3)
СК
Симон Карташов
8 869
Лучший ответ
Для начала, ты должен написать свой код в читаемом виде - со всеми отступами. Для чего в поле редактирования специальная кнопочка '<>' есть.
А пока ты будешь плевать на отвечающих - публикуя код в заведомо нечитаемом виде, отвечающие будут плевать на тебя.
Vitalik Tolchin
Vitalik Tolchin
64 958
Ну например возьмем сортировку пузырьком. Там есть цикл. Один цикл это линейное время n. Но там еще и подцикл который на каждом шаге тоже перебирает элементы за время n. То есть получается что время выполнения алгоритма уже не линейное, а n умножить на n. То есть n в квадрате. Про такое говорят - у алгоритма сложность O(n^2) - квадратичная сложность
Это если про оценку сложности алгоритма
1 код:
У тебя цикл до n
Внутри него еще цикл до m
Внутри него только cnt += 1 (1 операция)
Получается О(n * m)
Диас Калдан
Диас Калдан
34 940
Это сайт ответы майл ру, а не "наивные мамонты майл ру которые за бесплатно делают работу"
Владислав Коваль я не прошу сделать работу прошу объяснить принцип