Пример одного элемента из набора с O (1) сложностью по времени - PullRequest
1 голос
/ 08 апреля 2019

У меня есть набор в Python, и я хочу выбрать один элемент из него, как с методом random.sample ().Проблема в том, что sample () конвертирует set для кортежа внутри, что является O (n), и я должен сделать это наиболее оптимальным способом.

Есть ли функция, которую я могу использовать для выборки элемента изустановить со временем сложность O (1) или единственный способ сделать это - создать собственную реализацию набора?

1 Ответ

1 голос
/ 08 апреля 2019

Поскольку расположение данных нерегулярно, невозможно равномерно выборка из основанного на хэше set в O (1), за исключением, в случае ω (n) запросов, предварительно обработав его вкакой-то массив.(Конечно, такой массив можно поддерживать при построении set, но это не указанная отправная точка и не быстрее, чем преобразование tuple.)

...