#include #include void intercambiar (int *p1, int *p2) { int aux; aux = *p1; *p1 = *p2; *p2 = aux; } void ordenar(int vector[], int i, int j) { int x,y; for(x=i; x vector[y]) intercambiar(&vector[x],&vector[y]); } int posmenor(int vector[],int i, int n, int sig) { int x, m=0; for (x=n-1;x >= i ; x--) { if (vector[x] > sig) { m=x; x=-1; } } x=-1; } void escribir(int vector[],int n) { for(int i=0;i0) { if (vector[i] > vector[i-1]) { p=posmenor(vector, i, n, vector[i-1]); intercambiar(&vector[p], &vector[i-1]); ordenar(vector, i, n); escribir(vector, n);//aqui mostramos el arreglo resultante despues de cada permutacion return 1; } else return (permutar(vector, i-1, n)); } } int main() { int *vector,n;//hay que leer el tamaƱo del arreglo vector=new int(n); while(permutar(vector,n-1,n)!=-1) { } system("PAUSE"); return 0; }