C'est simple code en C (sorte de sélection):Tri de tri en C. Pourquoi?
#include <stdio.h>
#include <stdlib.h>
#define ItemCount 10
int numbers[ItemCount] = {4,9,3,7,2,5,10,2,12,6};
int MinNumberIndex(int start)
{
int i;
int minindex = start;
for(i=start+1;i<ItemCount;i++)
if(numbers[minindex]>numbers[i]) minindex = i;
return minindex;
}
void SelectionSort()
{
int i,temp,minindex;
for (i=0;i<10;i++)
{
minindex = MinNumberIndex(i);
temp = numbers[i];
numbers[i] = numbers[minindex ];
numbers[minindex ] = temp;
}
}
int main()
{
int i;
SelectionSort();
for(i = 0;i<10;i++) printf("%d\t",numbers[i]);
system("pause");
}
Et cela fonctionne bien ... mais si je change un peu comme celui-ci (en fonction SelectionSort):
for (i=0;i<10;i++)
{
temp = numbers[i];
numbers[i] = numbers[MinNumberIndex(i)];
numbers[MinNumberIndex(i)] = temp;
}
ça ne marche pas ... Pourquoi? Cela semble être la même chose.