27 lines
673 B
Python
27 lines
673 B
Python
from utils.algo_context import AlgoContext
|
|
from utils.algo_array import Array
|
|
from vorlesung.L05_binaere_baeume.avl_tree import AVLTree
|
|
|
|
|
|
def analyze_complexity(sizes):
|
|
import random
|
|
sizes = list(sizes)
|
|
elements = random.sample(range(max(sizes) * 10), max(sizes))
|
|
ctx = AlgoContext()
|
|
tree = AVLTree(ctx)
|
|
prev = 0
|
|
for size in sizes:
|
|
for i in range(prev, size - 1):
|
|
tree.insert(elements[i])
|
|
ctx.reset()
|
|
tree.insert(elements[size - 1])
|
|
ctx.save_stats(size)
|
|
prev = size
|
|
|
|
ctx.plot_stats(["comparisons"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sizes = range(10, 501, 10)
|
|
analyze_complexity(sizes)
|