Hola,
En C hay hay función para ordenar de forma binaria: qsort()
Puedes definir una estructura con los dos números, y definir una función de comparación. Para recordar cosas que casi las tenía olvidadas, he hecho un ejercicio con tu problema, reducido a 5 números. Espero que te sirva.
struct numeros
{
int num1;
int num2;
} numeros[5];
int compara_numeros( const void *a, const void *b)
{
struct numeros *n1, *n2;
n1 = (struct numeros *)a;
n2 = (struct numeros *)b;
if(n1->num1 > n2->num1) return 1;
if(n1->num1 < n2->num1) return -1;
if(n1->num2 > n2->num2) return 1;
if(n1->num2 < n2->num2) return -1;
return 0;
};
void setup()
{
Serial.begin(9600);
}
int n;
void loop()
{
numeros[0].num1 = 33 ; numeros[0].num2 = 31 ;
numeros[1].num1 = 4 ; numeros[1].num2 = 3 ;
numeros[2].num1 = 111 ; numeros[2].num2 = 222 ;
numeros[3].num1 = 1 ; numeros[3].num2 = 3 ;
numeros[4].num1 = 1 ; numeros[4].num2 = 2 ;
qsort((void *)numeros, 5, sizeof(numeros[0]), compara_numeros);
for(n=0;n<5;n++)
{
Serial.print(numeros[n].num1); Serial.print(" ");
Serial.println(numeros[n].num2);
}
delay(5555);
}