今重温了C语言的冒泡排序,自己也写了一个摇摆冒泡排序的算法。对一个具有20个元素的数组排序,代码如下:
#include<stdio.h>
main(){
int a[20];
int i,j,n;
printf("请输入20个整形数据:\n");
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(j=0;j<10;j++){
for(i=j;i<=18-j;i++){
if(a[i]>a[i+1]){
n=a[i];
a[i]=a[i+1];
a[i+1]=n;
}
}
for(i=18-j;i>=j;i--){
if(a[i-1]>a[i]){
n=a[i-1];
a[i-1]=a[i];
a[i]=n;
}
}
}
for(i=0;i<20;i++){
printf("%d ",a[i]);
}
}