Un probl`eme concretRecherche de collisions√Le paradoxe des anniversaires dit que 365 ´el`eves sont suffisants(en moyenne) pour avoir une collision d’anniversaire,IN 101 - Cours 05deux ´el`eves ayant leur anniversaire le mˆeme jour.7 octobre 2011Comment fait-on pour efficacement trouver ces “paires” d’´el`eves?pr´esent´eparMatthieu FiniaszUn probl`eme concret Un probl`eme concretRecherche de collisions Recherche de collisions√ √Le paradoxe des anniversaires dit que 365 ´el`eves sont suffisants Le paradoxe des anniversaires dit que 365 ´el`eves sont suffisants(en moyenne) pour avoir une collision d’anniversaire, (en moyenne) pour avoir une collision d’anniversaire, deux ´el`eves ayant leur anniversaire le mˆeme jour. deux ´el`eves ayant leur anniversaire le mˆeme jour.Comment fait-on pour efficacement trouver ces “paires” d’´el`eves? Comment fait-on pour efficacement trouver ces “paires” d’´el`eves?M´ethode simple : M´ethode simple :on remplit un tableau avec les n dates d’anniversaire, on remplit un tableau avec les n dates d’anniversaire,on compare chaque ´el´ement `a tous les autres du tableau on compare chaque ´el´ement `a tous les autres du tableau,2 2complexit´eenΘ(n ). complexit´eenΘ(n ). Peut-on faire mieux? Peut-on faire mieux? OUIon trie le tableau,on le parcourt en regarant si 2 voisins sont ´egaux,complexit´eenΘ(nlogn).Le triDescription du probl`emeOn se donne un tableau de n ´el´ements (des entiers par exemple) etune relation ...
Unproble`meconcret Recherche de collisions √ Leparadoxedesanniversairesditque365e´l`evessontsuffisants (en moyenne) pour avoir unecollision d’anniversaire, ˆeemelirsaerivnnarueltnayaseve`ldeux´eru.emoj
Comment fait-on pourefficacementrouvts“paerced”´’riseev?slee` Me´thodesimple: on remplit un tableau avec lesndates d’anniversaire, oncomparechaque´el´ementa`touslesautresdutableau 2 oceenxit´mpleΘ(n).
Peut-on faire mieux ?
Unproble`meconcret Recherche de collisions √ Leparadoxedesanniversairesditque365´ele`vessontsuffisants (en moyenne) pour avoir unecollision d’anniversaire, e`ev´xledueniveuranntlesayauojemeˆmeleriasrr.
Unprobl`emeconcret Recherche de collisions √ Leparadoxedesanniversairesditque365´ele`vessontsuffisants (en moyenne) pour avoir unecollision d’anniversaire, irelemˆemejour.ltnaaruevinnasrede´euxevl`ayes
Comment fait-on pourefficacement’´”desirpas“ceervuortev?slee` M´ethodesimple: on remplit un tableau avec lesndates d’anniversaire, oncomparechaque´ele´ment`atouslesautresdutableau, 2 molpxetien´ecΘ(n).
Peut-on faire mieux ?OUI ontrie le tableau, onleparcourtenregarantsi2voisinssonte´gaux, eplmioxc´teenΘ(nlogn).
On se donne un tableau denaperexpmele)´etl´ements(desentiers unerelation d’ordre totale≤. on effectue untri par comparaison, utilisant uniquement≤ lacomplexite´estlenombredecomparaisons.
Pourame´liorerunpeulesperformances,onarreˆteletride`sque l’undesparcoursn’inverseaucun´el´ements. Ce tri ne fait queΘ(ntri´ej`aaud´able.eoc)armpsoaisunsntru
L’ide´eestdefaireremonterlesgrands´el´ements`alafindutableau onparcourtletableauencomparantl’´el´ementiauiet on+ 1 lesinversesin´ecessaire, `al,sruocrapudnfialsttepllegrusd,anrederein´le´neme apr`esiparcours lesiplusgrands´eln.sstneme´fiala`tno on faitn−´e.ttricoar1plttaruesuasebael Complexit´e:oneffectueΘ(n) parcours comportantΘ(n) compa-raisons`achaquefois, 2 letria`bullesaunecomplexite´deΘndans le pire cas et en moyenne.
Trire´cursifbase´surunpartitionnement: on choisit unpivot, onpermutelese´le´mentsdutableau gransles,puiivotlspep,iubetuua´dtstipeesl,ds on trie les petits entre eux et les grands entre eux.
7 3 6 2
7 3
6 2
7
2
3
1 5
3 7
2 6
Tria`bulles
4 9
4 9
9
Lecouˆttotalestceluidesfusions: chaquefusioncoˆuteΘ(r−p), lecouˆttotalestΘ(nlog(n)), dans le pire cas et en moyenne.
On s’inspire du tri rapide : on conserve la ligne :intq = partition(tab,p,r); aulieude2appelsre´cursifs,onn’enfaitqu’un n n queq<o , selon2uq>2 onnefaitqu’unepartiedutri,leminimumn´ecessaire, n n n esnetlaelixocpmyone´tmen... = 2+ + + + n=Θ(n). 2 4 8