User Tools

Site Tools


in204:tds:sujets:td7:part3

This is an old revision of the document!


Partie III – Algorithmes génériques

Dans la conclusion du cours, nous affirmons qu’un intérêt du polymorphisme, c’est de pouvoir écrire un algorithme « générique », c’est à dire un algorithme qui pourra fonctionner pour des objets représentant des données de plusieurs types. Nous considérons un algorithme de tri très simple qui fonctionne sur des entiers :

void insertion_sort(std::vector<int>& anArray)
{
	for (int i = 0; i < anArray.size(); i++)
	{
		for (int j = i + 1; j < anArray.size(); j++)
		{
			if (anArray[i] > anArray[j])
				std::swap(anArray[i], anArray[j]);
		}
	}
}

Cet algorithme fonctionne uniquement pour des entiers. Nous nous proposons de transformer cette fonction afin qu’elle puisse aussi bien trier des entiers mais aussi des réels ou des complexes.

Question n° 1

Pour ce faire, nous concevons une classe « abstraite » ayant comme nom Base qui expose les fonctions nécessaires à l’écriture de l’algorithme de tri.

void insertion_sort(std::vector<Base*>& anArray);
in204/tds/sujets/td7/part3.1572785470.txt.gz · Last modified: 2019/11/03 12:51 by bmonsuez