2009~2014/C/C++

[Algorithm] Shake sort

malu 2012. 1. 13. 22:01
#include <stdio.h>

#define N 6

int main(void)
{
 int a[1000];
 int left,right,i,shift,t,j,cnt=0;
 int n;
 scanf("%d",&n);
 for(i=0;i<n;i++) scanf("%d",&a[i]);
 left=0; right=N-1;
 while(left<right){
  for(i=left;i<right;i++){
   if(a[i]>a[i+1]){ 
    t=a[i]; a[i]=a[i+1]; a[i+1]=t;
    shift=i;
   }
  }
  right=shift;
  for(i=right;i>left;i--){
   if(a[i]<a[i-1]){
    t=a[i]; a[i]=a[i-1]; a[i-1]=t;
   }
  }
  left=shift;
 // cnt++;
 }
 for(i=0;i<N;i++)
  printf("%d ",a[i]);
 printf("\n%d",cnt);

 return 0;
}