1.什么是冒泡排序
简单来讲冒泡排序就是一组整数比较大小,第一个与第二个比较大小。如果第一个数比第二个数大,则两个数互换位置,互换后继续与第三个数比较大小以此类推,如果遇到更大的数则更大的数继续与后面的数比较,最终第一趟比较最大的数排在数组最后一位上,然后开始第二趟排序,重复之前过程,最终该数组排列方式是从小到大排序。该过程就像冒泡一样,所以叫做冒泡排序。
2.排序过程
(1)比较第一个数和第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个和第三个数;以此类推直到n-1个数和第n个数比较为止--第一堂冒泡排序结束,最终最大的数排在最后一位。
(2)对前n-1个数进行第二趟冒泡排序,最终使次大的数排在第n-1个元素位置上。
(3)重复以上过程,经过n-1次冒泡排序后结束。
3.代码示例
#include<stdio.h>
#define N 10
int main()
{
int a[N],i,j,t;
printf("请输入整数数组\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
printf("The array after sort:\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
putchar(10);
return 0;
}
如果输入10个整数:1 2 3 8 79 45 6 65 12 54
打印出的结果为;1 2 3 6 8 12 45 54 65 79