Bonjour,
J'ai un souci . Je sollicite votre aide. En fait, je cherche à écrire une fonction qui permet de trier dans la meilleure position d'insertion des élements d'une liste chainée simple dans une liste chainée circulaire. Pour évaluer l'insertion je devrais calculer le cout de l'insertion de chaque élement dans les différentes positions et retenir la meilleure position pour l'élement qui a le cout minimum sur l’ensemble des élements. Refaire ceci jusqu’à ce que tous les élements de la liste sont traitées. Je ne sais pas comme faire ? Pourriez-vous m'aider par un début d'implémentation ?
Voici un exemple pour assimiler comment fonctionne l’algorithme:
Liste 1 = {1, 2, 3}
Liste 2 = {0, 0}pour le moment notre liste chainée circulaire contient un seul élément = 0
1 ère itérationinsérer le premier élément de la liste 1 à savoir 1 dans la meilleure position
on va tester l'insertion de 1 dans toutes les positions dans la liste 2
{0,1, 0} ==> cout d'insertion = 2
résultat la meilleure position de l'élément 1 est position = 1
Mettre l’élément dans la liste 2
2 ère itérationinsérer le deuxième élement de la liste 1 à savoir 2 dans la meilleure position
on va tester l'insertion de 1 dans toutes les positions dans la liste 2
{0,2,1, 0} ==> cout d'insertion = 2
{0,1,2, 0} ==> cout d'insertion = 3,
3 ère itérationinsérer le troisième élement de la liste 3 à savoir 2 dans la meilleure position
{0,3,1, 2,0} ==> cout d'insertion = 2
{0,1,3, 2,0} ==> cout d'insertion =1
{0,1,2,3, 0} ==> cout d'insertion = 4
le meilleur élement sur tous les élement à insérer en premier lieu c’est le 3 car il permet un cout d’insertion minimum
Résultat : mettre l’élement 3 dans la liste 2 en 1 ère position. Donc Liste 2 = {0, 3, 0}
Refaire ceci jusqu’à ce que tous les élements seront traités.
Merci par avance de vos aides .
-----