Qual è la complessità del tempo del miglior caso per inserire un nuovo nodo in un BST di livello minimo con n nodi?

StackOverflow https://stackoverflow.com//questions/22078331

  •  24-12-2019
  •  | 
  •  

Domanda

Sto imparando sulla complessità di algo e sulla complessità del tempo di calcolo del calcolo.La domanda è

Qual è la complessità del tempo del miglior caso per inserire un nuovo nodo in a BST di livello minimo con n nodi?Spiegare.(Suggerimento: puoi disegnare un diagramma come parte del tuo Soluzione.)

Puoi per favore spiegare in dettaglio come risolveresti questa domanda e domande simili?

Il mio tentativo:

Per la complessità del tempo abbiamo 2 domande, quante volte e cosa costa.

Quante volte: Ci sarà un elemento da controllare SO=> O (1) quanto costa? quante volte?

Ora sono bloccato qui (abbastanza presto), suppongo che dal suo albero un albero, ci saranno n / 2 elementi dopo il primo confronto e continua a dividere la metà.

È stato utile?

Soluzione

Considerare il seguente BST minimo-altezza (qualsiasi albero binario con nodi 8 ha almeno 4 livelli, quindi ha l'altezza minima).

         8
        / 
       4
     /   \
    2     6
   / \   / \
  1   3 5   7
.

Ora diciamo che inserisci il valore 9, andrà dritto sul lato destro della radice.

Per generalizzare questo esempio: un BST che ha un figlio destro o un figlio sinistro che sono completi alberi - è un'altezza minima BST.Se l'altro lato è vuoto, qualsiasi valore che inserirai quale sarà maggiore \ minore al nodo verrà aggiunto direttamente al bambino destro della radice.In questo caso l'inserto prenderà il tempo O(1).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top