/*-------------------------------------------------------------------------------------------
冒泡排序法
排序原理:将最大(最小)元素通过逐个比较和移动,移到最后一位.然后又
从开始逐个比较,将剩余部分的最值元素移动到倒数第二位,然
后又从开始...直到第一个元素和第二个元素比较结束.而这每
次的过程形象的比作气泡的下沉,直到所有气泡下沉,比较结束.
------------------------------------------------------------------------------------------*/
冒泡排序法
排序原理:将最大(最小)元素通过逐个比较和移动,移到最后一位.然后又
从开始逐个比较,将剩余部分的最值元素移动到倒数第二位,然
后又从开始...直到第一个元素和第二个元素比较结束.而这每
次的过程形象的比作气泡的下沉,直到所有气泡下沉,比较结束.
------------------------------------------------------------------------------------------*/
#include<stdio.h>
void Bubble_Sort(int ar[],int len);
int main(void)
{
int i,n;
puts("Input the number of elements to the array:");
scanf("%d",&n);
int ar[n]; //变长数组,编译器需要支持C99标准才行.
puts("Input n numbers:");
for(i=0;i<n;i++) //读取数组元素
scanf("%d",&ar[i]);
Bubble_Sort(ar,n);
printf("ar[%d] = ",n);
for(i=0;i<n;i++) //逐个打印数组元素
printf("%d ",ar[i]);
putchar('\n');
return 0;
}
void Bubble_Sort(int ar[],int len)//冒泡排序
{
int i,j,temp;
for(i=1;i<len;i++)
{
for(j=0;j<len-i;j++) //循环找到下沉"气泡",每下沉一位,下次比较长度较小一位
{
if(ar[j]>ar[j+1])
{
temp=ar[j];
ar[j]=ar[j+1];
ar[j+1]=temp; //将"气泡"下沉到当前比较的最后一位
}
}
}
}