c语言中数组中排序中的冒泡法是什么意思啊?

是不是每排一次都选择出其中的最大一个数哦?

上午回答人家的,现在贴过来(楼上说的都是对的,你结合着理解看看):
找排序的区别,一定要动手(用笔,不是电脑)去执行代码,不用问你也可以看出代码怎么排的,而且你自己对这问题的理解也更加深刻,问人的话说不定哪天你又忘了,说不定还把两种给搞反了。我下面手写给你解释一下代码,你动手去画一下。

为了方便思考,数组零位置我没用
选择排序(从小到大,每次将a[i]到a[n]中最小的值找到,并放到a[i]处)
for(i=1;i<=n;i++) //a[i[是我们当前要确定的数,这样的数有n个(即数组长度)
{
k=i; //k用来待会记录较小的数的位置
for(j=i+1;j<=n;j++) //将a[i]依次与后面的数比较,最后把最小的数交换到a[i]

{
if(a[j]<a[k])
k=j;
}

temp=a[k]; //k存的就是最终最小的数的位置,把最小的数交换到a[i]

a[k]=a[i];

a[i]=temp;

}

冒泡排序(顺着两两比较,最终最大的数被比较的最后位置,最终达到从小到大顺序)
for(i=1;i<n;i++) //这里n为比较次数,n个数,比较n-1次,最后一个数自然是最小的
for(j=1;j<=n-i+1;j++) //每次比较,后面比较好的数就不用再比较了

//n-i+1怎么来的?当i=1时,第一次比较肯定包括a[n],用这个特殊情况来写。
{
if(a[j]>a[j+1])
{
temp=a[j]; //把相邻两个数据比较出的较大的值换到后面
a[j]=a[j+1];
a[j+1]=a[j]
}
}
代码为手写,可能有错误,但大致思想就是这样,希望能帮到你。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-11
把最大的数找出来放在最后一个位置,就是冒泡法
第2个回答  2012-11-11
每走一趟,就能确定一个最大一个数,往下坠。
第3个回答  2012-11-11
一趟排序一个
第4个回答  2012-11-11
就可i韩国服务iueui