[讨论] 冒泡法的如何应用~
最近看到几个题目,都是关于冒泡法的,哪位高手能解释下冒泡法,最好在举几个简单的例子,
呵呵~看来和我一样也是新手~
冒泡法的确是需要2层循环,一般来说是for的循环吧~
举个例子:输入20个数字,要求按照从小到大的顺序输出。
先定义数组和相关用到的整型变量~~array[20]~
for(i=0;i<20;i++)
for(j=0;j<20-i;j++){
if(array[j]>array[j+1])
{t=array[j];array[j]=array[j+1];array[j+1]=t;}
} 这就是冒泡法的中心结构;
main()
{
int a[20];
int i,j,t;
printf("input 20 numbers:\n");
for(i=1;i<20;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<20;j++)
{for(i=0;i<20-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}}
printf("the sorted numbers:\n");
for(i=0;i<20;i++)
printf("%d",a[i]);
}
这是具体算法~ 谢谢回复帖子的朋友~