Logo a recorrência para o tempo de execução do pior caso do merge sorte é dada por:
Intuitivamente, podemos resolver essa recorrência. Reescrevemos a recorrência como:
insert(node.left, k) if k < node.key else insert(node.right, k)
Fator de balanceamento válido: $ | FB | \lt 2$ |
if FB(node) == -2: if FB(node.left) == +1: rotate_left(node.left) rotate_right(node) if FB(node) == +2: if FB(node.right) == -1: rotate_right(node.right) rotate_left(node)
is_valid_avl(node)
. Qual a complexidade de tempo dessa função?