Traduire en langage C les exercices suivants
On fournit le cadre général de la méthode, l'étudiant doit :
2. Tri rapide (QuickSort)
Un bon exemple de récursion est le tri rapide (quicksort), inventé par C.A.R. Hoare en 1962. Etant donné un tableau, on choisit un élément noté x dans celui-ci et on répartit les autres en deux sous-ensembles - ceux qui sont inférieurs à x et ceux qui lui sont supérieurs ou égaux. On applique ce même processus à ces deux sous-ensembles, récursssivement. Lorsqu'un sous-ensemble a moins de 2 éléments, ce n'est pas la peine de le trier, ce qui arrête la récurssion.
On peut içi choisir de partager tous les sous-ensembles par rapport à leur élément central.
3. Tri de complexité Linéaire
Elaborer un tri de complexité linéaire en plaçant certaines contraintes. Amener les élèves à trouver ces contraintes.
4. Algorithme de coloration de graphes
Il s'agit de manipuler expérimentalement un algorithme de complexité exponentiel. Fixer une structure de données simplifiée, de type matrice d'adjacence. L'algorithme en question est un algorithme de coloration des sommets d'un graphe non orienté simple connexe. L'algorithme 'glouton' de coloration de graphes:
- Début
- G=(V,E)
- Y=V
- couleur=0
- Tant que Y
Ø Faire
- couleur=couleur + 1
- Z=Y
- Tant que Z
Ø Faire
- i=min{j | i
j
n et vj
Z}
- colorier vi par couleur
- Y=Y-vi
- Z=Z-vi-{les voisins de vi}
- Fin
- Fin
- Fin