# coding=utf-8 # v - wektor liczb # x - poszukiwana liczba def binary_index(v, x): # jeĹli na liĹcie pozostaĹ tylko szukany element, to znaleĹşliĹmy na pozycji 0 if v == [x]: return 0 # jeĹli lista jest pusta lub zawiera element róşny niĹź szukany, to juĹź nie znajdziemy - zwracamy -1 if len(v) <= 1: return -1 s = len(v) / 2 # jeĹli lista jest za dĹuga, to rekurencyjnie wywoĹaj funkcjÄ dla mniejszego przypadku problemu if v[s] > x: return binary_index(v[:s], x) b = binary_index(v[s:], x) if b == -1: return -1 else: # w przypadku, gdy szukamy w prawej poĹowie listy, trzeba odpowiednio przesunÄ Ä zwracany indeks return b + s