私は二分法を理解しようとしています。私はそれが有用で計算を節約するアルゴリズムであることを知っている、私はそれが何をし、どのようにそれを行うの一般的な概念を得る。 私は何を得ることはありませんが、私は!= LEN(a)の場合はラインの部分がない誰かが私のために分解してもらえまさにhttps://docs.python.org/2/library/bisect.html二分インデックス検索 - なぜlen(a)と比較するのですか?
from bisect import bisect_left
def index(a, x):
'Locate the leftmost value exactly equal to x'
i = bisect_left(a, x)
if i != len(a) and a[i] == x:
return i
raise ValueError
から取られ、それを使用して、この検索機能を必要とします?私はそれを読むことができます - それはxの挿入インデックスがリストの長さに等しいかどうかをチェックしますが、私はそれを理解できません。それはなぜ必要なのですか?それがなければ何が起こるだろうか?
私は、xの長さより長い挿入インデックスがあるとしましょう.xが明らかに存在しないので、エラーを吐き出しますが、その場合は[i] == xチェックはとにかくそれをトリップする...?
ありがとうございます!
インデックスエラーを回避するには、e' [1,2,3] [3] ' –