All pastes #2079876 Raw Edit

Miscellany

public text v1 · immutable
#2079876 ·published 2011-09-05 00:01 UTC
rendered paste body
from BinaryTree import *
from RedBlackTree import *
from time import time
from random import sample, randint
from os import path

# Esta eh a funcao que executa os testes. "n" eh o numero de elementos que serao inseridos.

#n = raw_input("digite multiplo de mil")
#t = raw_input("1=binaria / 2=red black")
#if (t == "1"):
#    bintree(n)
#elif (t == "2"):
#    make.rbtree(n)
make.bintree(1000)

def make(n):
	arq1 = open(path.expanduser("~" + "/bin.xls"),"w")
	arq2 = open(path.expanduser("~" + "/rbt.xls"), "w")
	n = int(n)
	myNumbers = sample(range(1, n*1000), n) #Numeros que serao inseridos. A populacao eh 1000 vezes maior que a amostra
	def bintree(n):
		binaryTreeTest = BinaryTree()
		cont = n/1000 #Faz com que a contagem do tempo se repita a cada 1000 elementos inseridos.
		print cont
    	for i in range(cont):
	    	t1 = time()
	    	for j in range(n/cont):
		        binaryTreeTest.insertValue(myNumbers[(i*(n/cont)) + j])
	    	t2 = time()
    		arq1.writelines(str(t2-t1) + "\n") #Tempo de insercao em arvore binaria
        arq1.close()
        print "bintree done!"
	def rbtree(self):
		redBlackTreeTest = RedBlackTree()
        for l in range(cont):
		    t3 = time()
		    for m in range(n/cont):
			redBlackTreeTest.insertValue(myNumbers[(l*(n/cont)) + m])
			t4 = time()
			arq2.writelines(str(t4-t3) + "\n") #Tempo de insercao em arvore vermelho-preto
			arq2.close()		
			print "red-black tree done!"

	
#	number = randint(0,(n-1)) 
#
#	print number
#	
#	print
#	print myNumbers[number]
#	
#	t3 = time()
#	print tree.search(myNumbers[number])
#	t4 = time()
#	
#	print
#	print tree.search(myNumbers[number])
#	print
#	print t4-t3