Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 April 09

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
mr.slavik
а как показать что сложность алгоритма действительно линейно зависит от длинны строки?
не обращаться наверное больше чем 1 раз к каждому элементу из строки
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
вот собсфтвенно бенчмарк это нагенерировать рандомных строк определенной длинны
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
и скормить их своей функции
и усреднить время работы
оно должно расти линейно с увеличением длинны строки и не зависеть от символов
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Igor Antonov
не обращаться наверное больше чем 1 раз к каждому элементу из строки
это да
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
но если тебе например дают функцию и ты не знаешь что внутри
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
и тебе нужно проверить ее реальную сложность
что собственно и делают всякие one22
и прочие
источник

P

Petya in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
А как впихнуть туда строки если она их не ест допустим
источник

P

Petya in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
И как определяется сложность как с параметром временем обработки или витееватостью кода
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Petya
И как определяется сложность как с параметром временем обработки или витееватостью кода
в том и суть что это не имеет значения
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Вы просто запускаете функцию эту не зная как она работает с различными строками
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
и измеряете время за которое она дает ответ
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
и в среднем это время должно быть постоянным для строк длинной 5, например
независимо от того какие там символы
и быть в среднем в 2 раза больше для строк длинны 10
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
вот тут импортится тестируемая функция и создается функция генерирующая рандомную строку заданной длинны
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
а вот тут мы для всех длин по очереди ее вызываем
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ну там еще декоратор есть, но не суть)
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
принципиально тут ничего сложного - если должно для любых символов отрабатывать - значит нужно нагенерировать случайных символов строк и скормить
источник