冒泡法按照大小排序10个数

define _CRT_SECURE_NO_WARNINGS

include<stdio.h>

include<stdlib.h>

int main()
{
int a[10];
int i;
int j;
int c;
for (i = 0; i < 10;i++)
scanf("%d", &a[i]);
for (i = 0; i < 9; i++)//比的次数9次
{
for (j = 0; j < 9-i; j++)//冒泡法,第一个循环i=0,j=8,第二个循环从第二个开始i=1,j=7;
{
if (a[j] < a[j + 1])
{
c = a[j];//将两个数互换
a[j] = a[j + 1];
a[j + 1] = c;
}
}
}
printf(“排序结果:”);
for (i = 0; i < 10; i++)
{
printf("%d\n",a[i]);
}
system(“pause”);
return 0;
}
备注:冒泡法的原理就是可以用扑克牌为例子,首先第一次比较一共比较九次,第一张牌和第二张比较如果第一张小于第二张则互换。如果第一张大于第二张则不变位置,接下来第二张和第三张比较,第二张小于第三张则换,第二张大于第三张则不换,直到第九张和第十张比小则换大则不换,这是一个循环在第一轮过后最后一张也就是第十张一定是最小的,已经有一张不需要比较所以第二次比较则成了8次。以此类推,十个数比9次就好,为什么程序从0开始因为数组下标从0开始.
重要程序语句for (j = 0; j < 9-i; j++)
a[j] < a[j + 1]

猜你喜欢

转载自blog.csdn.net/qq_43205670/article/details/83515406
今日推荐