シェーカー・ソート
/*
* -------------------------------
* シェーカー・ソート
* -------------------------------
*/
#include <stdio.h>
#define N 9
void main(void){
int a[]={3, 5, 6, 9, 2, 7, 8, 10, 4};
int left, right, i, shift, t;
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;
shift=i;
}
}
left=shift;
}
for (i=0;i<N;i++){
printf("%d ", a[i]);
}
printf("¥n");
}
この記事が気に入ったらサポートをしてみませんか?