Algorithmes de tris et dichotomie
Premier algo
fonction algo1(tableau) :
pour i allant de 0 à longueur(tableau)-2 :
imin=i
pour j allant de i+1 à len(tableau)-1 :
si tableau[j] < tableau[imin] :
imin=j
fin de si
fin de pour
if imin!=i:
tableau[i],tableau[imin]=tableau[imin],tableau[i]
fin de si
renvoyer tableau
Exercice à choix multipleL'algorithme ci-dessus correspond à ...Correct !
Deuxième algo
fonction algo2(lst) :
pour i de 1 à len(lst) - 1 # mémoriser lst[i] dans x x ← lst[i] # décaler vers la droite les éléments de lst[0]..lst[i-1] qui sont plus grands que x en partant de lst[i-1] j ← i tant que j > 0 et lst[j - 1] > x lst[j] ← lst[j - 1] j ← j - 1 fin de tant que # placer x dans le "trou" laissé par le décalage lst[j] ← x renvoyer lst
Exercice à choix multipleL'algorithme ci-dessus correspond à ...Correct !
Comment interpréter les nombres de comparaison des algorithmes 2 et 3 ?
Pouvez vous donnez le nombre de comparaisons de l'algo 1 pour une liste de 200 valeurs ?
Pour l'algo2, que pourrait on dire ?
Et quelle est la complexité de l'algo 3 ?
Troisième algo
fonction algo3(x,lst) :
imin=0 imax=len(lst)-1 imilieu=(imin+imax)//2 tant que imin <= imax : si lst[imilieu]>x # on va chercher dans la partie de gauche : imax=imilieu-1 sinon si lst[imilieu] < x : # on va chercher dans la partie de droite: imin=imilieu+1 sinon : # on a trouvé x renvoyer True fin de si imilieu=(imin+imax)//2 fin de tant que renvoyer False
Exercice à choix multipleL'algorithme ci-dessus correspond à ...Correct !
S'il vous reste du temps...
Voici un graphe (nous étudierons les graphes plus en détail bientôt) qui permet de calculer N%7 pour tout nombre entier N :
Ce graphe contient des flèches noires et des flèches bleues. Votre premier travail est de modéliser le graphe avec deux dictionnaires : BLACK et BLUE.
Dans chacun des dictionnaires, les clés sont les valeurs de départ des flèches (noires ou blueues) et les valeurs sont les valeurs d'arrivée.
Par exemple, dans le dictionnaire NOIR, la clé 0 à pour valeur 1.
Ensuite, vous devez implementer l'algorithme de détermination de N%7. Etudions un exemple :