【排序算法】冒泡排序

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

你可能感兴趣的:(C++,排序算法,算法,数据结构)