【Python】不要犯这个大O表示法的错误!

Accidentally quadratic!

不要掉入这个常见的大O表示法错误!Python的语法简洁明了,有时很容易忽视像 “in” 这样的细节对性能的影响。即使性能不是您优先考虑的事项,这些细微之处的性能影响可能会累积,导致意外的结果。 重要注意事项:

list_in 和 set_in 是创造性的伪代码,并不能很好地代表 CPython 在 C 中实际执行这些操作的方式。

在集合(set)中,x in set 的运行时间为 O(1),但这取决于有一个良好的哈希函数,使得定位 x 应该在的位置的探测是 O(1) 的。

Python具有变宽整数,因此看似常数时间的操作,如整数相加或乘以整数(例如 total += n),在技术上并不是恒定时间,如果您的整数变得足够大,您会看到这种影响。

源地址:https://youtu.be/PXWL_Xzyrp4