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;
	};