Nessuna offesa , ma ti stai sbagliando Selection Sort


Questa è la bozza corretta del codice:

codice:
void selectionSort( STUD *array, const size_t size, int (*cmp)(const STUD *, const STUD *) )
{
	unsigned i;

	for( i = 0; i < size-1; ++i )
	{
		unsigned min = i;
		unsigned j = i+1;

		for( ; j != size; ++j )
		{
			if( cmp(&array[j], &array[min]) < 0 )
				min = j;
		}

		if( min != i )
			swap( array, i, min );
	}
}
Provala, fatti un idea e cerca di capire le differenze.