[PDF] SUJET + CORRIGE Exercice 2 : Algorithmes de rang. (





Previous PDF Next PDF



EXERCICES – ALGORITHME SECONDE Exercice 5.1 Ecrire un

Ecrire un algorithme qui demande un nombre compris entre 10 et 20 jusqu'à ce que La première



Exercices avec Solutions

Cet ouvrage regroupe des exercices des séries des travaux dirigés et examens (avec corrigés) du module Algorithmique de la première année MI (USTHB). Dans 



Examen dinformatique (Algorithmique)

Année : 2010/2011. Faculté de Sciences Exactes juin 2011. Département de physique/SM. 1ère année SM. Corrigé. Examen d'informatique (Algorithmique). Exercice 1 



Examen dalgorithmique

Année 2015–2016. Exercice 3 : Algorithmes sur les arbres - 6 points. On consid`ere des arbre binaires contenant des valeurs enti`eres dans les noeuds comme.



Corrigé dExamen Final : Sujet -A-

(1ère Année Licence - L1) Année universitaire 2019/2020. Module : Algorithmique 2. Semestre : S2 Durée : 1h00mn. Corrigé d'Examen Final : Sujet -A-. Page 1/3.



COURS ALGORITHMIQUE ET PROGRAMMATION INFORMATIQUE

12 mars 2013 Algorithmes fondamentaux de recherche recherche d'un élément parcours



Untitled

11 avr. 2018 Première Année Mastère Professionnel en Techniques Comptables Fiscales et Financières (MPTCFF) ... 7 mercredi 9 mai 2018. 14 h 00. Examen. 3.



Arles– Info 1ère année – Matière AP (Module Algorithmique) TD 3

Exercice I : Ecrire un algorithme qui permet de traduire un nombre d'heures de minutes et de secondes en secondes. Le nombre d'heures



Examen dAlgorithmique du texte

Examen d'Algorithmique du texte. Master 1ere année. Mercredi 7 Mai 2014. Exercice 1. Recherche de motif. 1. Calculer la table des bords du mot u = baabaaab.





Exercices avec Solutions

et examens (avec corrigés) du module Algorithmique de la première année MI (USTHB). ... Exercices Corrigés d'Algorithmique – 1ére Année MI 5. EXERCICE 1.





Examen dinformatique (Algorithmique)

1ère année SM. Examen d'informatique (Algorithmique). Exercice1 (2 pts) : 4. Traduire l'algorithme donné en programme pascal.



Examen dalgorithmique

Année 2015–2016. Examen des algorithmes et des explications sera fortement prise en compte pour la ... Exercice 1 : Dérouler des algorithmes (4 points).



SUJET + CORRIGE

Master BioInformatique. Année : 2013/2014. Semestre de décembre 2013. PARCOURS : Master 1. UE J1BS7202 : Algorithmique et Programmation. Épreuve : Examen.



Examen algorithme corrigé pdf usthb mi

Corrigés types des examens de rattrapage de S2 des Listes des Etudiants de 1ère année par section et... Programmes L1. Analyse; Algèbre; Algorithmique ...



Corrigé dExamen Final : Sujet -A-

Université de BATNA 2 Faculté de Math-Inf Département SCMI (1ère Année Corrigé d'Examen Final : Sujet -A- ... Ecrire un algorithme qui permet de :.



Arles– Info 1ère année – Matière AP (Module Algorithmique) TD 3

1ère année – Matière AP (Module Algorithmique). TD 3 Algorithmique. Exercice I : Ecrire un algorithme qui permet de traduire un nombre d'heures 



livre-algorithmes EXo7.pdf

Algorithmes et mathématiques Arithmétique – Algorithmes récursifs . ... Livre qui recouvre tout le programme d'algèbre de la première année ...



[PDF] Examen dinformatique (Algorithmique)

Année : 2010/2011 Faculté de Sciences Exactes juin 2011 Département de physique/SM 1ère année SM Examen d'informatique (Algorithmique)



(PDF) EXAMENS CORRIGÉS DALGORITHMIQUE Adnene TLILI

Ce livre constitue un support de cours pour différents enseignements d'algorithmique et de programmation en langage Pascal donnés aux étudiants 



[PDF] Exercices avec Solutions

Cet ouvrage regroupe des exercices des séries des travaux dirigés et examens (avec corrigés) du module Algorithmique de la première année MI (USTHB)



[PDF] corrigepdf

Master BioInformatique Année : 2013/2014 Semestre de décembre 2013 PARCOURS : Master 1 UE J1BS7202 : Algorithmique et Programmation Épreuve : Examen



Examen N°1 corrigé Informatique 2: Algorithmique I SMIA S2 PDF

Étudier les procédures et les fonctions qui permettent de structurer et de réutiliser les algorithmes Avoir une première notion de performance des algorithmes 



[PDF] exercices corrigés algorithmepdf - fustel-yaoundenet

EXERCICES – ALGORITHME SECONDE Exercice 5 1 Ecrire un algorithme qui demande à l'utilisateur un nombre compris entre 1 et 3 jusqu'à ce



Examen Algorithme : Exam + corrigé S1 ST - DZuniv

Télécharger gratuitement le document Examen Algorithme : Exam + corrigé S1 ST en Examen - Algorithmique - Informatique S1 sur DZuniv



[PDF] Examen dalgorithmique - Irif

Université Paris Diderot L2 Informatique Année 2015–2016 Examen d'algorithmique jeudi 14 janvier 2016 15h30–18h30 / Aucun document autorisé



Examen corrige examen algorithme 1 ere

examen algorithme 1 ere Département de Technologie (1ère année) Durée : 02 heures 1 exercices corrigés algorithme pdf - fustel-yaounde net



[PDF] Corrigé dExamen Final : Sujet -A-

Université de BATNA 2 Faculté de Math-Inf Département SCMI (1ère Année Licence - L1) Année universitaire 2019/2020 Module : Algorithmique 2

:

Master BioInformatiqueAnn

ee :2013/2014Semestre de decembre 2013

PARCOURS :Master 1

UE J1BS7202 :Algorithmique et Programmation

Epreuve :Examen

Date :Jeudi 19 decembre 2013

Heure :9 heures

Duree :2 heures

Documents : autorises

Epreuve de M. AlainGriffaultSUJET + CORRIGE

Avertissement

La plupart des questions son tind ependantes.

A chaque question, vous pouvez au choix

repondre par un algorithme ou bien par un programme python.

Les inden tationsdes f onctions ecritesen Python

doivent ^etre respectees. L'espace laiss ep ourles r eponsesest susan t(sauf si vous utilisez ces feuilles comme brouillon, ce qui est fortement deconseille).QuestionPointsScore

Mise en bouche7

Algorithmes de rang14

Liste doublement chainee9

Total:30

Exercice 1 : Mise en bouche (7 points)

(a) (1 p oint)Deux nom bresson topp osessi le ursom meest egale a0. Deux nombres sont inverses si leur produit est egal a1.Ecrire un algorithmesontInvOuOpp(a,b)ouaetbsont deux nombres, qui retourneVraisiaetbsont inverses ou opposes,Fauxsinon.

Solution:Deux solutions parmi d'autres.

defsontInvOuOpp(a ,b): returna+b==0orab==1Algorithme 1:SontInvOuOpp(a,b)Donnees:Deux nom bresa et b retourner(a+b=0) OU (a*b=1);(b)(2 p oints) Ecrire un algorithmeexisteInvOuOppConsecutifs(T)ouTest un tableau de nombres, qui retourneVraisiTcontient deux nombresconsecutifsopposes ou inverses,Fauxsinon.

Solution:Deux solutions parmi d'autres.

defexisteInvOuOppConsecutifs (T): foriinrange ( len (T)1): ifsontInvOuOpp(T[ i ] ,T[ i +1]): returnTrue returnFalseAlgorithme 2:ExisteInvOuOppConsecutifs(T)Donnees:Un tabl eauT de n ombres pouri=0alen(T)-2fairesisontInvOuOpp(T[i],T[i+1])alorsretournerTrue;retournerFalse;(c)(2 p oints) Ecrire un algorithmeexisteInvOuOpp(T)ouTest un tableau de nombres, qui retourne VraisiTcontient deux nombres,ayant des indices dierents, opposes ou inverses,Fauxsinon. UE J1MI2013 : Algorithmes et Programmes DS Terminal, Annee 2012/2013

Solution:Deux solutions parmi d'autres.

defexisteInvOuOpp(T): foriinrange ( len (T)1): forjinrange ( i +1,len (T)): ifsontInvOuOpp(T[ i ] ,T[ j ] ) : returnTrue returnFalseAlgorithme 3:ExisteInvOuOpp(T)Donnees:Un tableau T de nom bres

pouri=0alen(T)-2fairepourj=i+1alen(T)-1fairesisontInvOuOpp(T[i],T[j])alorsretournerTrue;retournerFalse;(d)(2 p oints)

Ecrire un algorithmenbInvOuOpp(T)ouTest un tableau de nombres, qui retourne le nombre de paires d'indices(i,j)telles que : d'une partiSolution:Deux solutions parmi d'autres. defnbInvOuOpp(T): nb = 0 foriinrange ( len (T)1): forjinrange ( i +1,len (T)): ifsontInvOuOpp(T[ i ] ,T[ j ] ) : nb = nb+1 returnnbAlgorithme 4:NbInvOuOpp(T)Donnees:Un tableau T de nom bres nb 0;

pouri=0alen(T)-2fairepourj=i+1alen(T)-1fairesisontInvOuOpp(T[i],T[j])alorsnb nb+1;retournernb;Exercice 2 : Algorithmes de rang (14 points)

Le probleme de la selection consiste a trouver dans un tableau de nombres l'element dit de rangi. Pour cet exercice, du fait que les indices d'un tableauTsont compris entre0etlongueur(T)-1, nous admettrons que l'element de rang0est le plus petit element du tableau, et que l'element de rang longueur(T)-1est le plus grand.

Exemple :SoitT= [8;6;53;8;2;9;3;10], alors :

Les elementsde rang <0sont indenis.

L' elementde rang 0est 2.

L' elementde rang 1est 3.

L' elementde rang 2est 6.

L' elementde rang 3est 8.

L' elementde rang 4est 8.

L' elementde rang 5est 9.

L' elementde rang 6est 10.

L' elementde rang 7est 53.

Les elementsde rang >7sont indenis.

Page 2 sur 10

UE J1MI2013 : Algorithmes et Programmes DS Terminal, Annee 2012/2013 Remarque 1 :Une solution simple au probleme de la selection consiste a utiliser un algorithme

quelconque de tri, puis de retourner l'element de rang souhaite.Algorithme 5:Rang(T,rang)Donnees:Un tabl eauT de n ombres,et rang un en tier

Resultat:Si rang est un indice, alors T[rang] apr esa voirtri eT sirang<0 OU ranglongueur(T)alorsretournernil;Trier(T);

retournerT[rang];Remarque 2 :Il est facile de se persuader qu'il n'est pas utile de triertoutle tableau pour avoir une

solution au probleme de la selection. Dans cet exercice, nous allons adapter des algorithmes de tri vus

en cours an d'obtenir des algorithmes de rang plusecacesque le precedent.

Dans toute la suite de l'exercice, vous pourrez utiliser la fonction classiqueEchange(T,i,j)qui echange

les valeurs du tableauTindicees parietj. defechange(T, i , j ):

TMP = T[ i ]

T[ i ] = T[ j ]

T[ j ] = TMPAlgorithme 6:Echange(T,i,j)Donnees:Un tableau T de nom bres,et deux indices i et j

Resultat:T[i] et T[j] echanges

aux T[i];

T[i] T[j];

T[j] aux;(a)Solution adapt eedu tri par s electionvu en cours. deftriSelection (T): foriinrange ( len (T)): iMin = i forjinrange ( i +1,len (T)): ifT[ j]Resultat:Le tableau T tri een ordre croissant pouri=0alongueur(T)-1faireiMin i; pourj=i+1alongueur(T)-1fairesiT[j]Il semble evident qu'une fois la valeur desireebien placeedans le tableau, il est inutile de continuer

le tri.

Page 3 sur 10

UE J1MI2013 : Algorithmes et Programmes DS Terminal, Annee 2012/2013 i. (2 p oints) Ecrire un algorithmerangSelection(T,r)fortement inspire de l'algorithme ou du programme pythontriSelection(T)qui resout le probleme de la selection. Ne pas oublier de s'assurer que le rang desire correspond a un indice du tableau.

Solution:Deux solutions parmi d'autres.

defrangSelection (T, r ): ifr<0orr>=len (T): returnNone foriinrange ( r+1): iMin = i forjinrange ( i +1,len (T)): ifT[ j]Resultat:L' elementde rang r du tableau T sir<0 OU rlongueur(T)alorsretournernil;pouri=0arfaireiMin i; pourj=i+1alongueur(T)-1fairesiT[j]retournerT[r];ii.(1 p oint)Compl eterle tableau des complexit esen fonction d en=longueur(T)et du rangr.

Rappel : Les complexites ne dependent pas de valeurs particulieres des parametres netr, mais de valeurs particulieres contenues dans le tableau.

Temps (meilleur des cas)

(n2) (nr)Temps (pire des cas)O(n2)O(nr)Espace (meilleur des cas) (1) (1)

Espace (pire des cas)O(1)O(1)Non demande :Il est facile d'ameliorer (un peu) la solution en selectionnant les valeurs minimales

(comme ici) lorsquer < n=2, et en selectionnant les valeurs maximales lorsquern=2. Les complexites s'expriment alors en remplacantrparmin(r;nr).(b)Solution adapt eedu tri abulle vu en cours. deftriBulle (T): foriinrange ( len (T)1,0,1): forjinrange ( i ): ifT[ j]>T[ j +1]: echange(T, j , j+1)Algorithme 9:TriBulle(T)Donnees:Un tableau T de nom bres

Resultat:Le tableau T tri een ordre

croissant pouri=len(T)-1a1 decroissantfairepourj=0ai-1fairesiT[j]>T [j+1]alorsEchange(T,j,j+1);

Il semble evident qu'une fois la valeur desireebien placeedans le tableau, il est inutile de continuer

le tri. i. (2 p oints) Ecrire un algorithmerangBulle(T,r)fortement inspire de l'algorithme ou du programme pythontriBulle(T)qui resout le probleme de la selection. Ne pas oublier de s'assurer que le rang desire correspond a un indice du tableau.

Page 4 sur 10

UE J1MI2013 : Algorithmes et Programmes DS Terminal, Annee 2012/2013

Solution:Deux solutions parmi d'autres.

defrangBulle (T, r ): ifr<0orr>=len (T): returnNone foriinrange ( len (T)1,r1,1): forjinrange ( i ): ifT[ j]>T[ j +1]: echange(T, j , j+1) returnT[ r ]Algorithme 10:RangBulle(T,r)Donnees:Un tableau T de nom breset un indice r

Resultat:L' elementde rang r du tableau T

sir<0 OU rlongueur(T)alorsretournernil;pouri=len(T)-1ar, decroissantfairepourj=0ai-1fairesiT[j]>T [j+1]alorsEchange(T,j,j+1);

retournerT[r];ii.(1 p oint)Compl eterle tableau des complexit esen fonction d en=longueur(T)et du rangr.

Solution:TriBulle(T)RangBulle(T,r)

Temps (meilleur des cas)

(n2) (n(nr))Temps (pire des cas)O(n2)O(n(nr))Espace (meilleur des cas) (1) (1)

Espace (pire des cas)O(1)O(1)Non demande :Il est facile d'ameliorer (un peu) la solution en faisant monter les grosses bulles

(comme ici) lorsquern=2, et en faisant descendre les petites bulles lorsquer < n=2. Les complexites s'expriment alors en remplacantnrparmin(r;nr).(c)Solution adapt eedu tri rapide vu e ncours. Soit la variante suivante de l'algorithme de partition basee sur l'algorithme du drapeau Hollandais vu en cours. Cet algorithmepartitionnele tableau en trois zones : la premiere contient des valeurs strictement inferieures a la valeur du pivot; la seconde contient des valeurs egales a la valeur du pivot; et la troisieme des valeurs strictement superieures a la valeur du pivot.

Page 5 sur 10

UE J1MI2013 : Algorithmes et Programmes DS Terminal, Annee 2012/2013 deftroisPartitionner (T,g ,d): pivot = T[ g ] i = g j = i k = d whilej<= k: ifT[ j ] == pivot : j += 1 elifT[ j ]Resultat:i,j,k tel que T[g..i-1] Echanger(T,j,k); k k-1;retourneri,j,k;Rappel :La complexite, vue en cours, detroisPartitionner(T,g,d)est (dg+ 1). i. (1 p oint)Compl eterle tableau suiv antan de sim ulerl'ex ecutionde troisPartitionner.

T= [17;3;21;13;17;25;4];g= 0;d= 6

Solution:Temps!pivot17

couple d'indices echanges(0,1)(2,6)(1,2)(2,3)(5,5) i0123 j012345 k654

Page 6 sur 10

UE J1MI2013 : Algorithmes et Programmes DS Terminal, Annee 2012/2013 ii. (2 p oints)Cette v ersionamelioreedu tri rapide tire prot des trois zones, en ne faisant pas d'appel recursif sur la zone intermediaire, car les valeurs de cette zone sont correctement placees. deftriRapideRec (T,g ,d): ifgRec(T,g,d)Donnees:Un tabl eauT de n ombres, et deux indices g et d

Resultat:Le tableau T[g..d] tri ee n

ordre croissant sigTriRapideRec(T,g,i-1); TriRapideRec(T,k+1,d);Algorithme 13:TriRapide(T)Donnees:Un tabl eauT de n ombres

Resultat:Le tableau T tri een ordre

croissant

TriRapideRec(T,0,longueur(T)-1);

Ecrire des algorithmesrangRapide(T,r)etrangRapideRec(T,g,d,r)fortement inspires des algorithmestriRapide(T)ettriRapideRec(T,g,d), qui resolvent le probleme de la selection. Ne pas oublier de s'assurer que le rang desire correspond a un indice du tableau.

Solution:Deux solutions parmi d'autres.

defrangRapideRec(T,g ,d, r ): ifgk: rangRapideRec(T,k+1,d, r ) defrangRapide(T, r ): ifr<0orr>=len (T): returnNone rangRapideRec(T,0 , len (T)1,r ) returnT[ r ]Algorithme 14:RangRapideRec(T,g,d,r)Donnees:Un tableau T de nom bres,trois indices g, d et r

Resultat:P ositionnel' elementde rang r du

tableau T sigkalorsRangRapideRec(T,k+1,d,r); Algorithme 15:RangRapide(T,r)Donnees:Un tableau T de nom bres,et un indice r

Resultat:L' elementde rang r du tableau T

sir<0 OU rlongueur(T)alorsretournernil;RangRapideRec(T,0,longueur(T)-1,r);

retournerT[r];iii.(1 p oint)Compl eterle tableau des c omplexitesen fonction de n=longueur(T)et du rangr.

Page 7 sur 10

UE J1MI2013 : Algorithmes et Programmes DS Terminal, Annee 2012/2013

Solution:

TriRapide(T)RangRapide(T,r)

Temps (meilleur des cas)

(n) (n)(Toutes les valeurs identiques)

Temps (pire des cas)O(n2)O(nr)(tableau trie)

Espace (meilleur des cas)

(1) (1)

Espace (pire des cas)O(n)O(r)(d)La solution naturelleau probleme de selection base sur le tri rapide est une solution recursive.

En examinant le deroulement de votre programme, vous devez vous apercevoir qu'aucun calcul pertinantn'est realise des que l'on commence a depiler les appels recursifs de la pile d'execution.

Dans de tel cas, il est assez facile de transformer une solution recusrsive en une solution iterative.

i. (2 p oints) Ecrire un algorithmerangRapideIteratif(T,r)obtenu a partir de votre solution a la question precedente.

Solution:Deux solutions parmi d'autres.

defrangRapideIteratif (T, r ): ifr<0orr>=len (T): returnNone g = 0 d = len (T)1 whileTrue : i , j ,k = troisPartitionner (T,g ,d) ifrk: g = k+1 else: returnT[ r ]Algorithme 16:RangRapideIteratif(T,r)Donnees:Un tableau T de nom bres,et un indice r

Resultat:L' elementde rang r du tableau T

sir<0 OU rlongueur(T)alorsretournernil;g 0; d longueur(T)-1; tant queTruefaire(i,j,k) troisPartitionner(T,g,d); sirkalorsg k+1;sinon

retournerT[r];ii.(1 p oint)Compl eterle tableau des complexit esen fonction d en=longueur(T)et du rangr.

Temps (meilleur des cas)

(n) (n)(Toutes les valeurs identiques)

Temps (pire des cas)O(n2)O(nr)(tableau trie)

Espace (meilleur des cas)

(1) (1)

Espace (pire des cas)O(n)O(1)Non demande :En realite le pire des cas est soit un tableau trie, ce qui donne une complexite en

O(nr), soit un tableau trie en ordre decroissant qui donne une complexite enO(n(nr)). Ainsi la complexite dans le pire des cas est enO(nmax(r;nr)).Page 8 sur 10 UE J1MI2013 : Algorithmes et Programmes DS Terminal, Annee 2012/2013 (e) (1 p oint)En pr atique,le cas standardcorrespond a un tableau initial non trie, et ayant peu de valeurs repetees. L'algorithme de partitionnement retourne alors souvent trois zones telles que l'intermediaire estpetiteet a peu pres au centre du tableau. Completer le tableau en fonction den=longueur(T)et du rangrpour ce casmoyen. Temps moyen(nlog2(n))(n)(n)(zone 2 petite et centree)

Exercice 3 : Liste doublement chainee (9 points)

Denition :Uneliste doublement cha^neeest une structure dynamiqueLcomposee de cellules ayant chacune : Un c hampinfopour stocker les donnees de la liste.

Un p ointeursuccqui contient l'adresse de la cellule suivante dans la liste si elle existe, la valeurnil

sinon.

Un p ointeurpredqui contient l'adresse de la cellule precedente dans la liste si elle existe, la valeur

nilsinon.

La listeLest un pointeur ayant pour valeurnilsi la liste est vide, sinon l'adresse de l'unique cellule

dont le pointeurpredest egal anil.L infopred succ-infopred succ- ...infopred succ-

Figure1 { Une liste doublement cha^nee

Les listes doublement cha^nees sont manipulees par les primitives suivantes :

1.Derniere_Cellule(L)qui retourne un pointeur sur la derniere cellule de la liste si elle existe, la

valeurnilsinon.

2.Inserer_Apres(L,X,P)qui insere dans la listeLla celluleXapres la cellule pointee parP.

3.Inserer_Tete(L,X)qui insere en t^ete de la listeLla celluleX.

4.Concatener(L1,L2)qui retourne le resultat de la concatenation des listesL1etL2dans la liste

L1. (a) (2 p oints) Ecrire l'algorithme de la primitiveDerniere_Cellule(L).

Solution:

defderniereCellule (L): Aux = L# L pourrait etre utilise , mais par habitude . . . ifL!=None: whileAux. succ!=None:

Aux = Aux. succ

returnAux(b)(2 p oints) Ecrire l'algorithme de la primitiveInserer_Apres(L,X,P). Vous supposerez quePest un pointeur valide sur une cellule deL.

Solution:

definsererApres (L,X,P):# ne change pas L, inutile de retourner

C = creerListeDC (X)Page 9 sur 10

UE J1MI2013 : Algorithmes et Programmes DS Terminal, Annee 2012/2013

C. pred = P

ifP. succ!=None:

C. succ = P. succ

P. succ . pred = C

P. succ = C(c)(2 p oints)

Ecrire l'algorithme de la primitiveInserer_Tete(L,X).

Solution:

definsererTete (L,X):# change L, i l faut retourner la nouvelle valeur

C = creerListeDC (X)

ifL!=None:

C. succ = L

L. pred = C

returnC(d)(3 p oints) Ecrire l'algorithme de la primitiveConcatener(L1,L2).

Solution:

defconcatener (L1,L2 ):# peut changer L1, i l faut retourner la valeur ifL1!=None: ifL2!=None:

Aux = derniereCellule (L1)

Aux. succ = L2

L2. pred = Aux

returnL1 else: returnL2Page 10 sur 10quotesdbs_dbs11.pdfusesText_17