Witam,
Mam problem z programem, ktory ma miec za zadanie generowanie otoczen w formie swap (zamien) i insert (wstaw). Nie udalo mi sie znalezc dokladnie wyjasnionego procesu generowania tych otoczen, takze glownie z tego powodu zalozylem ten watek.
Wiec tak,
w funkcji wstaw, wychodzi mi tak:
0123
1023
1203
1230
2130
2310
2301
3210
3021
3012
0312
0132
0123
Czyli najpierw po przekatnej przechodzi 0, pozniej 1,2,3 :) Czy tak to ma wygladac? bo nie moge znalezc odpowiedzi (tzn wiem ze powinno przejsc 0 po przekatnej, ale dalej nie wiem, wiec domyslam sie ze ma byc tak).
Funkcja swap powinna wygladac tak?
0123
1023
2103
3210
2310
1230
2130
Czyli przechodzi po przekatnej 0, pozniej 3 o 1raz mniej, pozniej 1 znow o 1mniej i na koniec 2. Czy to tak ma wygladac?
Nizej przedstawiam moj kod programu w c++. Dziala mi funkcja insert (w sposob jak przedstawilem wyzej), ale nie moge sobie poradzic z swap :(
void Zamien()
{
cout<<"Liczba cyfr to: "<<k<<endl;
int tablica[k];
int ilerazy=0;
for (int i=0; i<k; i++)
{
tablica[i]=i;
for (int j=0;j<k;j++)
{
cout<<tablica[j];
}
cout<<endl;
swap(tablica[0],tablica[1]);
for (int j=0;j<k;j++)
{
cout<<tablica[j];
}
cout<<endl;
swap(tablica[0],tablica[2]);
for (int j=0;j<k;j++)
{
cout<<tablica[j];
}
cout<<endl;
};
void Wstaw()
{
cout<<"Liczba cyfr to: "<<k<<endl;
int tablica[k];
int ilerazy=0;
for (int i=0; i<k; i++)
{
tablica[i]=i;
}
for (int j=0;j<k;j++)
{
cout<<tablica[j];
}
do
{
for (int i=0; i<k-1; i++)
{
swap(tablica[i],tablica[i+1]);
cout<<endl;
for (int j=0;j<k;j++)
{
cout<<tablica[j];
}
}
ilerazy=ilerazy+1;
}
while (ilerazy<k);
cout<<endl;
};