Essayez ce qui suit:
Le poids d'un élément i dans le tas H est sa profondeur dans l'arbre binaire correspondant. Ainsi, l'élément dans la racine a un poids nul, ses deux enfants ont un poids 1 et ainsi de suite. Vous définissez comme fonction potentiellewjejeH
Φ ( H) = ∑i ∈ H2 wje.
Analysons maintenant les opérations de tas. Pour insérer, vous ajoutez un nouvel élément, ajoutez la profondeur au plus log ( n ) . Cela augmente le potentiel de 2 jours et peut être fait en temps O ( 1 ) . Ensuite, vous "bouillonnez" le nouvel élément de tas pour assurer la propriété de tas. Cela prend du temps O ( log n ) et laisse Φ ( H ) inchangé. Ainsi, les coûts d'insertion sont O ( log ( n ) + Δ ( Φ (réJournal( n )2 jO(1)O(logn)Φ(H) .O(log(n)+Δ(Φ(H)))=O(logn)
Considérons maintenant l' extractMin . Vous retirez la racine et la remplacez par le dernier élément du tas. Cela diminue le potentiel de , vous pouvez donc vous permettre de réparer la propriété du tas, et donc les coûts amortis sont maintenant O ( 1 ) .2log(n)O(1)
Si vous avez une question générale sur la fonction potentielle, vous devez la poser comme une question différente.