Heya, je suis en train d'essayer de mettre en œuvre l'algorithme de tri par sélection sur une liste simplement chaînée, je suis conscient qu'il y a un problème dans le code mais même si ma liste contient les nombres 7 1 2 6, la sortie après l'exécution est 7777. Toute aide serait appréciée.
template
void UnOrderedLinkedList::selectionSort()
{
nodeType* loc;
nodeType* minIndex;
nodeType* temp;
temp = first;
if(temp == NULL)
cerr<<"Impossible de trier une liste vide."<link == NULL)
cerr<<"La liste ne contient qu'un élément donc elle est déjà triée."<link;
}
}
template
nodeType* UnOrderedLinkedList::minLocation(nodeType* first, nodeType* last)
nodeType* minIndex;
nodeType* other;
minIndex = first;
other = minIndex->link;
while(other != NULL)
{
if(minIndex->info > other->info)
{
minIndex = other;
other = other->link;
}
else
{
other = other->link;
}
}
return minIndex;
}
Ensuite pour échanger:
template
void UnOrderedLinkedList::swap(nodeType* first, nodeType* second)
{
nodeType* temp;
temp->info = first->info;
first->info = second->info;
second->info = temp->info;
}