def test(self): for j in range(1,3): instance = [] print j for i in range(0,2**10*j): instance.append(i) l = 0 n = len(instance) print n r = n - 1 m = 4*n print "-> M: " + str(m) self.reset_sequences(m) while m<=8*n: sequences = self.generate_next_sequences(instance,l,r,n,True) uniform = sequences[0] begin = sequences[1] pl("random uniform",uniform) pl("random beginning uniform",begin) m = m*2 #ejemplo de uso en test # seq = Sequence() # seq.test()
def test(self): a = [] for i in range(0,2**10): a.append(i) l = 0 r = len(a) -1 x = 4 pl("a",a) print "mix search" self.mix_inter_search(a,l,r,x) print "comparations : " + str(self.get_counter()) print "bin search" self.bin_search(a,l,r,x) print "comparations : " + str(self.get_counter()) print "inter search" self.interpolation_search(a,l,r,x) print "comparations : " + str(self.get_counter()) #ejemplo de uso en funcion test # s = Search() # s.test()
def __in_range(self,instance,l,r,x): # print "l : " + str(l) # print "r : " + str(r) # if r-l == 1 or l==r: if l==r: if instance[l] == x: self.__counter += 1 return x elif r-l == 1: if instance[r] == x: self.__counter += 1 return x elif instance[l] == x: self.__counter += 2 return x else: print "Error" print "x : " + str(x) print "l : " + str(l) print "r : " + str(r) print "elem[l]: " + str(instance[l]) print "elem[r]: " + str(instance[r]) for i in range(0,len(instance)): if instance[i] == x: print "-> i : " + str(i) break pl("error",instance) exit() else: return -1
def test(self): for i in range(0, 10): print i r = self.generate_next_instance() if i == 6: pl("uniform", r[0]) pl("random", r[1])