Acasa Tehnologie Generarea permutarilor – backtracking recursiv

Generarea permutarilor – backtracking recursiv

by Dragos Schiopu

>

#include 
#include
#include

int k,n,st[90];

void tipar(int k)
{
cout<<"n";
for(int i=1;i<k;i++)
cout<<st[i]<<" ";
}

int valid(int k)
{
int ok=1;
for(int i=1;i<=k-1;i++)
if(st[k]==st[i]) ok=0;
return ok;

}


void back(int k)
{
if(k==n+1) tipar(k);
else
for(int i=1;i<=n;i++)
{
st[k]=i;
if(valid(k))
back(k+1);
}
}

void main()
{
n=5;
clrscr();
back(1);
getch();
}

s-ar putea sa-ti placa