分类: C/C++
2008-07-27 20:48:35
关于冒泡法
看了文涛的blog,感触很深,觉得程序的有些细节问题可以自己通过编程来了解,也更细致地了解它的执行过程,同时也当作是一种测试,下面是一个排序的测试程序
#include
void main()
{
int a[11]; /* 第0号元素不用 */
int i, j,k, cup;
printf("Input 10 numbers:\n");
for(i = 1; i < 11; i++)
scanf("%d", &a[i]);
for(i = 1; i <= 9; i++) /* 趟数 */
{
printf("i=%d\n\n",i);
for(j = 1; j <= 10 - i; j++) /* 每趟要比较数 */
{ if(a[j] > a[j+1]) /* 前面数大于后面数刚对调 */
{
cup = a[j];
a[j] = a[j+1];
a[j+1] = cup;
}
printf(" j=%d\n",j);
for(k=1;k<=10;k++)
{
printf(" %5d",a[k]);
}
printf("\n");
}
}
}