#include
/* 冒泡排序:buble_sort(int x[],int N)
功能: 将整型数组元素从小到大排序
入口参数:x :int型数组名称
N : 数组长度
*/
void buble_sort(int x[],int N)
{
int i,j,temp;
for(i=0;i<=N-2;i++) //共N个数组元素,需比较N-1次
{
for(j=i;j<=N-2-i;j++) //每次比较将最大值放到数组末尾
{
if(x[j]>x[j+1])
{
temp=x[j];
x[j]=x[j+1];
x[j+1]=temp;
}
}
}
}
/*
N-2: 共N个数组元素,需比较N-1次,每次比较均将较大值往后放,从第1次比较(下标为0)开始,到第N-1次比较(下标为N-2)结束。
N-2-i: 第i次比较开始前,已选出了前i个最大值。
第1次比较(下标i=0)开始前:未排序;
第2次比较(下标i=1)开始前:已排序出 x[N-1];
第3次比较(下标i=2)开始前:已排序出 x[N-2],x[N-1];
第4次比较(下标i=3)开始前:已排序出 x[N-3],x[N-2],x[N-1];
.
.
第i+1次比较(下标为i)开始前:已排序出 x[N-i-1],x[N-i]...x[N-1];
.
.
第N-1次比较(下标为N-2)开始前:已排序出 ,x[1],x[2]...x[N-1];
*/
int main(void)
{
int i;
int y[5]={1,2,9,5,6};
i=0;
buble_sort(y,5);
for(i=0;i<=4;i++)
printf("y[%d]=%d\n",i,y[i]);
return 0;
}