Example #1
0
	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()
Example #2
0
	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()
Example #3
0
	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
Example #4
0
 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])