Если три стороны одного треугольника пропорциональны трём сходственным сторонам другого, то треугольники подобны.В том и дело что по сходственным. Значит просто отсортировать не вариант. Важно направление обхода треугольника. Код не проверял, но идея вроде такая.
void merge(int* input, int p, int q, int s, int* output) {
int i = p;
int j = q + 1;
if(q < s)
{
while((i < q) || (j < s))
{
if(input[i] < input[j])
{
output[???] = input[i];
i++;
}
else if(input[j] < input[i])
{
output[???] = input[j];
j++;
}
}
}
}