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