本实例实现的功能是:使用冒泡法对任意输入的10个数由小到大进行排序。通过两个for循环实现冒泡排序的全过程,外层for循环决定冒泡排序的趟数,内层for循环决定每趟所进行的两两比较的次数。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i,j,temp,a[11];
printf("请输入10个数:\n");//定义变量及数组为基本整型
for(i=1;i<11;i++)
{
scanf("%d",&a[i]); //从键盘中输入10个数
}
for(i=1;i<10;i++) //变量i代表比较的趟数
{
for(j=1;j<11-i;j++) //变量j代表每趟两两比较的次数
{
if(a[j]>a[j+1])
{
temp=a[j]; //利用中间变量实现两值互换
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排序后的顺序是:\n");
for(i=1;i<=10;i++)
{
printf("%5d",a[i]); //将冒泡排序后的顺序输出
}
printf("\n");
system("pause");
}
冒泡排序是C语言中比较经典的例子,也是读者应该掌握的一种算法。
冒泡法的基本思路是,如果对n个数进行冒泡排序,那么要进行n-1趟比较,在第1趟比较中要进行n-1趟两两比较;在第j趟中要进行n-j次两两比较。
下面,我们将引进一种