производительность алгоритма Python Shuffle - PullRequest
11 голосов
/ 21 февраля 2012

Мне было интересно узнать о временной сложности shuffle функции в random библиотеке / модуле Python.Это O (n) или меньше?

Существует ли веб-сайт, показывающий временные сложности функций, принадлежащих библиотекам Python?

1 Ответ

16 голосов
/ 21 февраля 2012

Вы не можете перетасовать список совершенно случайным образом менее чем за O (n).

В реализации random.shuffle() используется алгоритм перестановки Фишера-Йейтса , который легко увидеть как O (n).

...