Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2015, 12:14
Avatar de Jose_A
Jose_A
 
Fecha de Ingreso: mayo-2015
Ubicación: México, Sonora.
Mensajes: 180
Antigüedad: 9 años
Puntos: 0
Necesito entender cómo funciona un código

Hola, buenas tardes. Me he encontrado un código para generar permutaciones por internet pero no le entiendo nada, soy un novato en c++ y quisiera saber si alguien es tan amable de explicarme cómo es que funciona este sencillo código:

Código:
#include <iostream>
#define N 4
using namespace std;

char ch[] = "abcd";

int func(int n) {
    int i,j;
    char temp;
    if(n==0) {
        for(j=N-1;j>=0;j--)
            cout<<ch[j];
        cout<<endl;
        return 0;
    }
    for(i=0;i<n;i++){
        temp = ch[i];
        for(j=i+1;j<n;j++)
            ch[j-1] = ch[j];
        ch[n-1] = temp;
        //shift
        func(n-1);
        for(j=n-1;j>i;j--)
            ch[j] = ch[j-1];
        ch[i] = temp;
        //and shift back agian
    }
    return 1;
}

int main(void)
{
    func(N);
    return 0;
}
Gracias de antemano, saludos!!