A gama completa de algoritmo recursivo

problema

Suponha  {1, 2, 3, ... n} sequência tal, encontrar toda a gama completa desta sequência.

resolver ideias

Primeiro existem n possibilidades, determinada após o primeiro é o de resolver o restante N - um arranjo o problema de dados, de modo que pode quebrar o problema tem sido para baixo, até que no final da sequência, o que é a condição de terminação.

O primeiro arranjo de bits (não-recursiva)

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

não considera o problema de elemento de sequência repetida, a sequência de teste {1,2,3}
#include <o iostream>
 a usar  namespace STD;
 nula Perm ( int lista [], int  de , int n-) 
{ 
    para ( int I = de ; I <n-; i ++ ) 
    { 
        o swap (Lista [ de ], lista [I]) ;
         // trocar um arranjo de saída completo 
        para ( int I = 0 ; I <N; i ++ ) 
            COUT << Lista [I] << "  " ; 
        COUT << endl;
         // assegurar sequência de troca antes ou {1, 2, 3}
        swap (lista [ de ], a lista [i]); 
   
    } 
} 
Int main () 
{ 
    int lista [] = { 1 , 2 , 3 }; 
    Perm (lista, 0 , 3 );
    retornar  0 ; 
}

 

O arranjo de todos (recursiva No. 2, No. 3)

1 2 3 
1 3 2 
2 1 3 
2 3 1 
3 2 1 
3 1 2
#include <o iostream>
 a utilização  de espaço de nomes DST;
 vazio Perm ( int Lista [], int  a partir de , int n-) 
{ 
    // condição de terminação circuito 
    IF ( a partir de == N-) 
    { 
        // troca de um arranjo de saída completo 
        para ( int I = 0 ; I <n-; i ++ ) 
            COUT << Lista [I] << "  " ; 
        COUT << endl;
         retorno ; 
    } 
    para ( int I = a partir de; I <N; i ++ ) 
    { 
        a troca (Lista [ de ], Lista [I]);
         // adicionado recursivamente 
        Perm (Lista, a partir de + 1 , n);
         // assegurar sequência de troca antes ou {1, 2, 3 } 
        a troca (Lista [ de ], Lista [I]); 
    } 
} 
int main () 
{ 
    int Lista [] = { 1. , 2 , 3. }; 
    Perm (Lista, 0 , 3. );
     retorno  0 ; 
}

Acho que você gosta

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