Esto es parte de una programación y, en parte, una combinatoria pregunta.
Estoy trabajando en un idioma que, lamentablemente, no admite la matriz de estructuras. Me he encontrado con un problema que tengo que ordenar mis variables en orden creciente.
Ya que el lenguaje tiene funciones para el mínimo y el máximo de dos entradas (pero el idioma no me permite nido de ellos, por ejemplo min(a, min(b, c))
no está permitida), pensé que esto podría ser un camino hacia mi problema.
Si, por ejemplo, yo tengo dos variables$a$$b$, sólo necesito una variable temporal, de modo que $a$ termina siendo inferior o igual a $b$:
t = min(a, b);
b = max(a, b);
a = t;
para las tres variables $a,b,c$, la situación es un poco más complicado, pero sólo una variable temporal es suficiente para que $a \leq b \leq c$:
a = min(a, b);
t = max(a, b);
c = max(t, c);
t = min(t, c);
b = max(a, t);
a = min(a, t);
No tener un fuerte combinatoria de fondo, sin embargo, no sé cómo generalizar las anteriores construcciones si he a $n$ variables en general. En particular, hay una manera de averiguar cómo muchas variables temporales que tendría que ordenar $n$ variables, y para averiguar cuál es el número mínimo de asignación de instrucciones necesarias para la clasificación?
Gracias de antemano!