def main(): global struct global insert_num global delete_num global min_num global max_num global succ_num global find_num global curr_elem_num global greatest_elem_number start = time.time() args = list(sys.argv) struct_type = str(args[2]) if struct_type == 'bst': struct = binary_tree.BinaryTree() elif struct_type == 'rbt': struct = rb_tree.RBTree() elif struct_type == 'hmap': struct = hmap.HashMap() else: struct = None return 0 functions_number = int(input()) while functions_number: function = input() args = None try: name, args = function.split(" ") except: name = function.split(" ")[0] print(name) if args is not None: eval(name)(args) else: eval(name)() functions_number -= 1 end = time.time() print("Czas działania: %s" % (str(end - start)), file=sys.stderr) print("Liczba operacji:", file=sys.stderr) print("Insert: %d, delete: %d, min: %d, max: %d, find: %d, successor: %d" % (insert_num, delete_num, min_num, max_num, find_num, succ_num), file=sys.stderr) print("Maksymalne zapełnienie struktury: %d" % (greatest_elem_number), file=sys.stderr) print("Końcowe zapełnienie struktury: %d" % (curr_elem_num), file=sys.stderr)
def generuj_plik(): print("1000000") for _ in range(100000): print("insert " + randomString(5)) for _ in range(100000): print("delete " + randomString(5)) # generuj_plik() MIN_T = (10000, 0) for i in range(1, 1000): print(i, file=sys.stderr) t0 = time.time() hashmap = hmap.HashMap(1000000, i) with open("test_n.txt", "r") as f: content = f.readlines() n = int(content[0]) for c in content[1:]: message = c.split(" ") if message[0] == "insert": hashmap.insert(message[1]) elif message[0] == "delete": hashmap.delete(message[1]) t1 = time.time() if t1 - t0 < MIN_T[0]: MIN_T = (t1 - t0, i) print(MIN_T)
import hmap import rbt import bst import time import sys a = hmap.HashMap(47, 1000000) b = rbt.RedBlackTree() c = bst.BST() sys.setrecursionlimit(10000) n = int(input()) porownaniahmap = 0 porownaniarbt = 0 porownaniabst = 0 polecenia = {"find": 0} minhmap = 1000000000 minrbt = 1000000000 minbst = 1000000000 maxhmap = 0 maxrbt = 0 maxbst = 0 for i in range(n): message = input().split(' ') print(i) if message[0] == "insert": a.insert(message[1]) b.insert(message[1]) c.insert(message[1]) elif message[0] == "find":
return ''.join(random.choice(letters) for i in range(stringLength)) def generuj_plik(): print("1000000") for i in range(500000): print("insert " + randomString(5)) for i in range(500000): print("delete " + randomString(5)) # generuj_plik() MIN_T = (10000, 0) for i in range(1, 1000): t0 = time.clock() hashmap = hmap.HashMap(i, 1000000) with open("testowy.txt", "r") as f: content = f.readlines() n = int(content[0]) for c in content[1:]: message = c.split(" ") if message[0] == "insert": hashmap.insert(message[1]) elif message[0] == "delete": hashmap.delete(message[1]) t1 = time.clock() #print(i, ": ",t1-t0) if t1 - t0 < MIN_T[0]: MIN_T = (t1 - t0, i) print(MIN_T)
def test_function_time(): hash_map = hmap.HashMap() rbtree = rb_tree.RBTree() bstree = binary_tree.BinaryTree() while True: try: results = { 'insert': [], 'delete': [], 'find': [], 'max': [], 'min': [] } # testing insertion average time filename = 'insert_test_data.txt' with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") rbtree.insert(arg) end = time.time() results['insert'].append((end - start) / 100000) with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") bstree.insert(arg) end = time.time() results['insert'].append((end - start) / 100000) with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") hash_map.insert(arg) end = time.time() results['insert'].append((end - start) / 100000) # testing find average time filename = 'find_test_data.txt' with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") rbtree.find(arg) end = time.time() results['find'].append((end - start) / 100000) with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") bstree.find(arg) end = time.time() results['find'].append((end - start) / 100000) with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") hash_map.find(arg) end = time.time() results['find'].append((end - start) / 100000) # testing max average time with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") rbtree.max() end = time.time() results['max'].append((end - start) / 100000) with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") bstree.max() end = time.time() results['max'].append((end - start) / 100000) # testing min average time with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") rbtree.min() end = time.time() results['min'].append((end - start) / 100000) with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") bstree.min() end = time.time() results['min'].append((end - start) / 100000) # testing delete average time filename = 'find_test_data.txt' with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") rbtree.delete(arg) end = time.time() results['delete'].append((end - start) / 100000) with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") bstree.delete(arg) end = time.time() results['delete'].append((end - start) / 100000) with open(filename, 'r') as file: content = file.readlines() start = time.time() for c in content: _, arg = c.split(" ") hash_map.delete(arg) end = time.time() results['delete'].append((end - start) / 100000) print("Insert:") print("rbtree: %f" % (results['insert'][0])) print("bstree: %f" % ((results['insert'][1]))) print("hmap: %f" % ((results['insert'][2]))) print("Delete:") print("rbtree: %f" % ((results['delete'][0]))) print("bstree: %f" % ((results['delete'][1]))) print("hmap: %f" % ((results['delete'][2]))) print("Find:") print("rbtree: %f" % ((results['find'][0]))) print("bstree: %f" % ((results['find'][1]))) print("hmap: %f" % ((results['find'][2]))) print("Max:") print("rbtree: %f" % ((results['max'][0]))) print("bstree: %f" % ((results['max'][1]))) print("Min:") print("rbtree: %f" % ((results['min'][0]))) print("bstree: %f" % ((results['min'][1]))) return except: main()