Étant donné un tableau non trié, A[]
, contenant n
entiers, comment créer un algorithme pour renvoyer l'élément qui s'est produit le plus souvent?Nombre d'occurrences dans un tableau en O (n log n) temps
Je suppose que vous auriez besoin d'un moyen de compter le nombre de fois qu'un élément se produit. Je peux seulement comprendre une implémentation O (n). Je sais que je dois d'abord utiliser un algorithme de tri, mais si je devais utiliser le tri par fusion, c'est déjà l'exécution totale de O (n logn)). J'ai seulement trié les données et je ne peux pas regarder les éléments sans augmenter encore le temps d'exécution.
Si trier le tableau est une possibilité, le tri par fusion fera l'affaire en le faisant n logn, après quoi une simple itération fera l'affaire –
Pas une réponse, mais un indice. O (n log n) + O (n) est toujours O (n log n). La notation Big-O se préoccupe uniquement du terme dominant. –
@DavidC Je pensais que vous les multiplieriez - ne les ajoutez pas! Si j'avais su cela, je n'aurais pas posé cette question. Je vous remercie! –