Non capisco come tu intenda far funzionare questo algoritmo...

Se trovi un valore che è minore di quello puntato da min scambi gli indici e, in qualsiasi caso, scambi anche due valori (anche se non dovrebbero essere scambiati) ??