Есть ли ссылка на сложность Python? В cppreference, например, для многих функций (таких как std:: array:: size или std:: array:: fill) существует раздел сложность, который описывает их сложность работы, с точки зрения линейности по размеру контейнера или константа.
Я бы ожидал, что такая же информация появится на веб-сайте python, возможно, по крайней мере для реализации CPython. Например, в справочной таблице, в list.insert
я ожидаю увидеть сложность: linear; Я знаю, что этот случай (и многие другие операции, связанные с контейнером) покрываются здесь, но многих других случаев нет. Вот несколько примеров:
- В чем сложность
tuple.__le__
? Похоже, что при сравнении двух кортежей размераn
,k
сложность составляет околоO(min(n,k))
(однако при маломn
он выглядит иначе). - В чем сложность
random.shuffle
? Кажется, этоO(n)
. Также представляется, что сложностьrandom.randint
составляетO(1)
. - Какова сложность метода строк
__format__
? Он кажется линейным по размеру входной строки; однако он также растет, когда число соответствующих аргументов возрастает (сравните("{0}"*100000).format(*(("abc",)*100000))
с("{}"*100000).format(*(("abc",)*100000))
).
Я знаю, что (а) на каждый из этих вопросов можно ответить сам по себе, (б) можно посмотреть на код этих модулей (хотя некоторые из них написаны на С), и (в) StackExchange не список рассылки python для пользовательских запросов. Итак: это не запрос функции-документа, а вопрос двух частей:
- Вы знаете, существует ли такой ресурс?
- Если нет, знаете ли вы, в чем место, чтобы спросить об этом, или вы можете предположить, почему мне это не нужно?