冒泡排序:让相邻的两个数进行比较,较小的数值向下沉,较大的数值向上浮。通过两个for循环实现冒泡排序的全过程,外层循环决定决定冒泡的循环次数,内层for循环决定两两比较的次数。
思路:如果对n个数进行排序,那么就要进行n-1趟比较,在第1趟比较中要进行n-1次两两比较,那么在第i趟比较中要进行n-i次两两比较。
实列说明:用冒泡排序对任意输入的10个整数由小到大进行排序
代码:
#include <stdio.h>
int main()
{
int i,j,t,a[10];
printf("Please input 10 number:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]); //从键盘输入10个数
for(i=0;i<9;i++) //i代表循环的趟数
{
for(j=0;j<9-i;j++) //j代表每次循环两两比较的次数,每完成一次趟数,比较次数就减一
{
if(a[j]>a[j+1])
{
t=a[j]; //利用中间变量互换
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("The new order of number is:\n");
for(i=0;i<10;i++) //输出排序后的数
{
printf("%3d",a[i]);
}
printf("\n");
return 0;
}
输出结果: