La gama completa de algoritmo recursivo

problema

Supongamos  {1, 2, 3, ... n} secuencia tal, encontrará toda la gama completa de esta secuencia.

la solución de las ideas

En primer lugar hay n posibilidades, determinados después de la primera es para resolver los restantes n - un arreglo del problema de los datos, por lo que se puede descomponer el problema ha sido hacia abajo, hasta que al final de la secuencia, que es la condición de terminación.

La primera disposición de bit de (no recursivo)

2. 3. 1 
2. 1. 3 
. 3. 1 2 

no considera el problema de la repetida elemento de secuencia, la secuencia de prueba {1,2,3}
#include <la iostream>
 el uso de  espacio de nombres STD;
 void Perm ( int Lista [], int  desde , int n-) 
{ 
    para ( int I = de ; I <n-; I ++ ) 
    { 
        el canje (Lista [ de ], List [I]) ;
         // intercambiar una disposición de salida de uno lleno 
        para ( int I = 0 ; I <n-; I ++ ) 
            COUT << Lista [I] << "  " ; 
        COUT << endl;
         // asegurarse de secuencia de intercambio antes o {1, 2, 3}
        swap (lista [ de ], lista [i]); 
   
    } 
} 
Int main () 
{ 
    int lista [] = { 1 , 2 , 3 }; 
    Perm (lista, 0 , 3 );
    volver  0 ; 
}

 

La disposición de los (recursiva No. 2, No. 3)

1 2 3 
1 3 2 
2 1 3 
2 3 1 
3 2 1 
3 1 2
#include <la iostream>
 el uso de  espacio de nombres STD;
 void Perm ( int Lista [], int  desde , int n-) 
{ 
    // bucle condición de terminación 
    IF ( de == n-) 
    { 
        // el intercambio de una disposición de salida de uno lleno 
        para ( int I = 0 ; I <n-; I ++ ) 
            COUT << Lista [I] << "  " ; 
        COUT << endl;
         retorno ; 
    } 
    para ( int I = desde; I <n-; I ++ ) 
    { 
        el canje (Lista [ de ], List [I]);
         // añadido de forma recursiva 
        Perm (Lista, de + 1 , n-);
         // asegurarse de secuencia de intercambio antes o {1, 2, 3 } 
        el canje (Lista [ de ], List [I]); 
    } 
} 
int main () 
{ 
    int Lista [] = { 1. , 2 , 3. }; 
    Perm (List, 0 , 3. );
     retorno  0 ; 
}

Supongo que te gusta

Origin www.cnblogs.com/zhongweizi/p/12465240.html
Recomendado
Clasificación