Dichiara una struct ad esempio:
struct valore{
int x;
int y;
}
Il vettore dei valori lo chiami ad esmpio:
struct valore valori[MAX];
Adesso quando ordini vuoi ordinare ad esempio il campo x, ovvero vedendo il tuo esempio hai:
i X Y
0 3 2
1 2 1
2 5 3
e vuoi ottenere:
i X Y
1 2 1
0 3 2
2 5 3
Quando fai l'ordinamento devi spostare l'intera struct all'indice i.