//冒泡排序法
//即每一趟比较都会使得最小或者最大的元素
//像水中气泡一样上浮
//每一趟都会有一个元素排好序
1.0
#include<stdio.h>
#define N 8
void PubbleSort(int a[])
{
int i,j,t;
for(i=0;i<N-1;i++){//进行n-1趟比较
for(j=N-1;j>i;j--){//遍历元素
if(a[j]<a[j-1]){
t=a[j];//交换元素
a[j]=a[j-1];//即最小元素像气泡一样上浮
a[j-1]=t;
}
}
}
}
int main()
{
int a[N];
int i;
for(i=0;i<N;i++){//输入数组元素
scanf("%d",&a[i]);
}
PubbleSort(a);
for(i=0;i<N;i++){//输出
printf("%4d",a[i]);
}
return 0;
}
2.0
#include<stdio.h>
#define N 8
void PubbleSort(int a[])
{
int i,j,t,tag=1;//tag作为标志
for(i=0;i<N-1&&tag;i++){//进行n-1趟比较
tag=0;//每次tag赋值0
for(j=N-1;j>i;j--){//遍历元素
if(a[j]<a[j-1]){
t=a[j];//交换元素
a[j]=a[j-1];//即最小元素像气泡一样上浮
a[j-1]=t;
tag=1;//如果有比较tag==1,即进入下趟比较
} //否则,说明到排好序的元素那,后面的元素
} //已经排好序了,所以不用继续进行比较,完成排序
}
}
int main()
{
int a[N];
int i;
for(i=0;i<N;i++){//输入数组元素
scanf("%d",&a[i]);
}
PubbleSort(a);
for(i=0;i<N;i++){//输出
printf("%4d",a[i]);
}
return 0;
}