Université Assane Seck de Ziguinchor UFR Sciences Et Technologies Département Informatique
Université Assane Seck de Ziguinchor UFR Sciences Et Technologies Département Informatique
Université Assane Seck de Ziguinchor UFR Sciences Et Technologies Département Informatique
2.1.2 Réécrire la procédure TRI-INSERTION pour trier dans l’ordre non croissant et non dans
l’ordre non décroissant.
2.1.3 Considérez le problème de la recherche :
Entrée : Une suite de n nombres A = « a1, a2, . . . , an » et une valeur v.
Sortie : Un indice i tel que v = A[i], ou bien la valeur spéciale NIL si v ne figure pas dans A.
Écrire du pseudo code pour recherche linéaire, qui parcoure la suite en cherchant v. En utilisant
un invariant de boucle, montrer la validité de l’algorithme. Vérifier que l’invariant possède
bien les trois propriétés requises.
2.1.4 On considère le problème consistant à additionner deux entiers en représentation binaire
stockés sur n bits, rangés dans deux tableaux A et B à n éléments. La somme des deux entiers
doit être stockée sous forme binaire dans un tableau C à n + 1 éléments. Énoncer le problème
formellement et écrire du pseudo-code pour additionner les deux entiers.
2.2.1 Exprimer la fonction n3/1000 − 100n2 − 100n + 3 à l’aide de la notation Θ.
2.2.2 On considère le tri suivant de n nombres rangés dans un tableau A : on commence par
trouver le plus petit élément de A et on le permute avec A[1]. On trouve ensuite le deuxième
plus petit élément de A et on le permute avec A[2]. On continue de cette manière pour les n−1
premiers éléments de A. Écrire du pseudo code pour cet algorithme, connu sous le nom de tri
par sélection. Quel est l’invariant de boucle de cet algorithme ? Pourquoi suffit-il d’exécuter
2.3.2 Réécrire la procédure FUSION de telle sorte qu’elle n’emploie pas de sentinelles mais
qu’à la place elle s’arrête quand l’un des deux tableaux L et R a eu tous ses éléments copiés
dans A, en copiant alors le reste de l’autre tableau dans A.
2.3.3 Utiliser l’induction mathématique pour montrer que, lorsque n est une puissance exacte
de 2, la solution de la récurrence
est T(n) = n lg n.
2.3.4 Le tri par insertion peut être exprimé sous la forme d’une procédure récursive de la
manière suivante. Pour trier A[1 . . n], on trie récursivement A[1 . . n − 1] puis on insère A[n]