classificação de membros da matriz de estrutura

Dada uma matriz de estrutura (em C) eu estou tentando imprimir os resultados em grupos de gênero e em ordem subordem por ordem numérica. Por exemplo:

struct employee{
char gender[13]
char name[13];
int id;
};

Digamos que eu defina o array de estrutura da seguinte forma:

struct employee info[2]={{"male","Matt",1234},{"female","Jessica",2345},{"male","Josh",1235}};

Como eu poderia imprimir os resultados como

1234 Matt
1235 Josh


2345 Jessica