检查范围内的东西的运行时间

时间:2018-10-25 16:30:42

标签: python

我想检查m在l和h之间。 我会写

if m<=h and m>=l

m in range(l,h+1)

后一种看起来更好,但是花费的时间是否超过O(1)?

2 个答案:

答案 0 :(得分:5)

O(1)

if m<=h and m>=l:
    ...

O(n)在Python 2中,但O(1) in Python 3

if m in range(l, m+1):
    ...

更好的风格:

if low <= m <= high:
    ...

注意:如果m可以是非整数(例如,考虑浮点数),则行为是不同的

答案 1 :(得分:0)

最好使用第一个,但您可以像这样重写它:

if 1<=m<=h

函数range创建一个列表,in搜索该列表中是否有m。两次比较在性能上更差。

这仅适用于python 2,在python 3中这两种方法都是最佳的。