Exemple #1
0
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)
Exemple #2
0

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)
Exemple #3
0
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":
Exemple #4
0
    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)
Exemple #5
0
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()