• Aucun résultat trouvé

TD d’algorithmique avanc´ee TD 4 : recherche de l’´el´ement majoritaire

N/A
N/A
Protected

Academic year: 2022

Partager "TD d’algorithmique avanc´ee TD 4 : recherche de l’´el´ement majoritaire"

Copied!
1
0
0

Texte intégral

(1)

TD d’algorithmique avanc´ee

TD 4 : recherche de l’´el´ement majoritaire

Jean-Michel Dischler et Fr´ ed´ eric Vivien

Nous nous int´eressons `a un tableau Aden´el´ements,n´etant suppos´e ˆetre une puissance de deux. Nous supposons ´egalement que la seule op´eration `a notre disposition nous permet de v´erifier si deux ´el´ements sont ou non ´egaux. Un ´el´ement xdeA est dit majoritaire si et seulement si Acontient strictement plus den/2 occurrences dex. Nous nous int´eresserons `a la complexit´e au pire.

Algorithme na¨ıf

1. ´Ecrivez un algorithme qui calcule le nombre d’occurrences d’une valeurxpr´esentes entre les indices i et j d’un tableauA.

2. Quelle est la complexit´e de cet algorithme ?

3. Au moyen de l’algorithme pr´ec´edent, ´ecrivez un algorithme Majoritairequi v´erifie si un tableau A contient un ´el´ement majoritaire.

4. Quelle est la complexit´e de cet algorithme ?

Premier algorithme « diviser pour r´ egner »

1. Proposez un algorithme Majoritaire construit suivant le paradigme « diviser pour r´egner ». Cet algorithme divisera en deux le tableau A sur lequel il travaille. Il renverra le couple (Vrai, x) si le tableau A contient un ´el´ement majoritaire (x´etant cet ´el´ement) et renverra le couple (Faux, 0) si le tableauA ne contient pas d’´el´ement majoritaire.

2. Quelle est la complexit´e de cet algorithme ?

Deuxi` eme algorithme « diviser pour r´ egner »

1. ´Ecrivez un algorithme construit suivant le paradigme « diviser pour r´egner », prenant en entr´ee un tableauA —qu’il divisera en deux— et poss´edant la propri´et´e suivante :

– soit cet algorithme nous garantit que le tableauAne contient pas d’´el´ement majoritaire ;

– soit cet algorithme nous renvoie un ´el´ementxet un entiercx> n/2 tels quexapparaisseau plus cx fois dansA et que tout autre ´el´ement deA apparaisseau plus n−cx fois dansA.

2. Quelle est la complexit´e de cet algorithme ?

3. `A partir de l’algorithme pr´ec´edent, ´ecrivez un algorithme Majoritaire qui v´erifie si un tableau A contient un ´el´ement majoritaire.

4. Quelle est la complexit´e de cet algorithme ?

Références

Documents relatifs

Etude du signal cr´ eneau de p´ eriode T 0 , de valeur moyenne nulle variant en 1 et -1 : (Par d´ ecalage de l’origine, il est possible de se placer dans le cas d’un signal cr´

Il s'agit de tracer l'évolution de l'énergie de position lorsque l'objet est lancé à la verticale au cours du temps.. Puis pareil pour

Puis pareil pour

R´ ecrivez votre algorithme de recherche du maximum sous la forme d’un tournoi (de tennis, de foot, de p´ etanque ou de tout autre sport)2. Il n’est pas n´ ecessaire de

Nous voulons maintenant un algorithme Union(A, B) qui nous renvoie l’union des deux ensembles qui lui sont pass´ es en argument.. (a) Cas des ensembles non tri´ es

Donnez deux algorithmes « diviser pour r´ egner » permettant de multiplier deux polynˆ omes de degr´ e au plus n et s’ex´ ecutant en Θ(n log 2 3 ).. (a) Le premier algorithme

Nous supposons ´ egalement que la seule op´ eration ` a notre disposition nous permet de v´ erifier si deux ´ el´ ements sont ou non ´ egaux.. Proposez un algorithme

Q 1.1 Ecrivez une fonction RechSeq qui, ´ etant donn´ ee une plage de cellules et un ´ el´ ement x, retourne vrai si x est pr´ esent dans la plage, et faux sinon.. On cherche `