#include <stdio.h>
#include <iostream>

using std::cout;
using std::cin;
using std::endl;
using std::string;


void ShakerSort(int a[], int n)
{
   int i,t,k,r,l;
   l=0;
   k=r=n-1;
   do
   {
      for(i=r;i>l;i--)
         if(a[i-1]>a[i])
         {
            t=a[i-1];
            a[i-1]=a[i];
            a[i]=t;
            k=i;
         };
         l=k;

      for(i=l;i<r;i++)
         if(a[i]>a[i+1])
         {
            t=a[i+1];
            a[i+1]=a[i];
            a[i]=t;
            k=i;
         };
         r=k;

   }while(l<r);
}

void main()
{
   int Pole[] = {9, 4, 3, 1, 5, 6, 8, 2, 7};
   cout<<"Shaker sort, pole pred tridenim: ";
   cout<<endl;
   for (int k= 0; k<9;k++) cout<<Pole[k]<<" ";
   cout<<endl;
   cout<<endl;
   ShakerSort(Pole, 9);
   cout<<"Pole po trideni: ";
   cout<<endl;
   for (int j= 0; j<9;j++) cout<<Pole[j]<<" ";
   cout<<endl;
   cout<<endl;
}