编程语言
首页 > 编程语言> > 问:Python3中random.choice(list)的Big-O复杂性是什么

问:Python3中random.choice(list)的Big-O复杂性是什么

作者:互联网

Python3中random.choice(list)的Big-O复杂度是多少,其中n是列表中元素的数量?

编辑.谢谢大家给我答案,现在我明白了.

解决方法:

O(1).更确切地说,它等于以大的O随机访问时间来按您传递的任何顺序查找单个索引,并且list具有O(1)随机访问索引(与元组一样). Simplified, all it does is seq[random.randrange(len(seq))], which is obviously equivalent to a single index lookup operation.

可能是O(n)的示例是collections.deque,其中双端队列的索引是O(n)(尽管有一个较大的常数除数,所以除非双端队列达到数千个元素,否则它并不那么昂贵范围或更高).因此,基本上,不要使用双端队列,如果它会很大,并且您打算重复从中选择随机元素,则坚持使用O(1)来列表,元组,str,字节/字节数组,array.array和其他序列类型索引.

标签:python-3-x,random,complexity-theory,python
来源: https://codeday.me/bug/20191026/1937699.html