我看小甲鱼同志以前的那个版本的视频,自己写了一个冒泡排序的程序,如下:
#include <stdio.h>
void main()
{
int i, j, a;
printf("请输入10个数\n");
for(i = 0; i < 10; i++)
{
scanf("%d", &a);
}
for(i = 0; i < 9; i++) //这里,外层循环控制9躺(0~8)不难理解,但是下面的那个注释
{
for(j = 0; j < 9 - i; j++) //这里为什么要变成“9 - i”?
{
if(a > a)
{
a = a + a;
a = a - a;
a = a - a;
}
}
}
for(i = 0; i < 10; i++)
{
printf("%5d", a);
if(i != 9)
{
printf("<");
}
}
printf("\n");
getch();
}
然后,注意看注释部分,我不是不理解“9 - i”表示每一趟后面的那个数不用排列,我想的是步骤
如果我for循环里面没有用9 - i,直接就写9,那么,每一次执行for语句的时候,我就不用对j < 9 - i这一句中后半部分进行计算,然后里面for循环每次都是执行9次,它最多多一次的冒泡次数啊,所以说,我这种写法会有什么弊端吗?
页:
1
[2]