Está en la página 1de 5

Ejemplo Permutaciones

2017 – Noviembre

Rigoberto Fonseca
rfonseca@yachaytech.edu.ec

1
Permutaciones - Recursiva
//Genera las permutaciones de X y las almacena en Y
void permutaciones(Matriz * Y, Matriz *X, int desde, int hasta)
{
int i;
if (desde == hasta) {
registrar(Y, X);
}
else {
for (i = desde; i <= hasta; i++) {
intercambiar(X, desde, i);
permutaciones(Y, X, desde + 1, hasta);
intercambiar(X, desde, i);
}
}
}

2
Requiere
//Intercambia la columna 1 con la columna 2
void intercambiar(Matriz *X, int c1, int c2) {
int temp;
temp = X->valores[0][c1];
X->valores[0][c1] = X->valores[0][c2];
X->valores[0][c2] = temp;
}

3
Main
int main(void) { B.filas = 0;
Matriz A, B; B.columnas = A.columnas;
A.filas = 1;
A.columnas = 3; permutaciones(&B, &A, 0,
A.valores[0][0] = 1; A.columnas - 1);
A.valores[0][1] = 2;
A.valores[0][2] = 3; printf("Permutaciones");
imprimirMatriz(&B);
pausa();
return 0;
}

4
Ver depuración paso a paso

También podría gustarte