Voici la source de ma question.
Étant donné un arbre à équilibrage automatique (AVL), codez une méthode qui renvoie la médiane.
(Médiane: la valeur numérique séparant la moitié supérieure d'un échantillon de données de la moitié inférieure. Exemple: si la série est
2, 7, 4, 9, 1, 5, 8, 3, 6
alors la médiane est 5.)
Je peux proposer la solution suivante:
- Parcourez l'arbre donné, retournez le nombre d'éléments.
- Traversez
n / 2 + 1
(sin
c'est impair) l'arbre en appliquant à nouveau une marche dans l'arbre dans l'ordre. La valeur dun / 2 + 1
e élément est la médiane.
Mais je peux le faire avec un arbre de recherche binaire, non? Existe-t-il un meilleur algorithme pour un AVL?