什么是冒泡排序法?能说具体点吗?

 我来答
烈马行风
2011-08-25 · TA获得超过374个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:122万
展开全部
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
  由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序
uhowg680sye
2011-08-25 · TA获得超过878个赞
知道小有建树答主
回答量:960
采纳率:0%
帮助的人:494万
展开全部
冒泡排序. 将一组整数按小到大排列后存回原存贮区.
算法: 相邻二个数比较,小的调到前头.
数据结构:
变量n: 这一组数的个数,从键盘输入.
一维数组a: 存放这n 个数(a[1],……,a[n-1],a[n])
循环变量i=1, j=1
框图:
j=1,只要外循环次数j未到n-1次
i=1, 只要内循环次数i未完
Y a[i]>a[i+1] N
a[i] a[i+1]
i=i+1
j=j+1
输出排好序的a[1]------a[n]

main( )
{ int a[ 100] , n , i , j , t ;
scanf(“%d”, &n) ;
for( i=1 ; i<=n ; i++) scanf(“%d”, &a[i]) ;
for( j=1; j<=n-1; j++)
for( i=1 ; i<=n-j ; i++) 小的往上冒
if (a[i]>a[i+1] ) 沉下最大的.

for( i=1 ; i<=n ; i++)
printf(“%d ”, a[i] );
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
将军战舰VX
2011-08-29
知道答主
回答量:3
采纳率:0%
帮助的人:3.2万
展开全部
快速排序和堆排序必须掌握,至于冒泡可以无视,题做多了自然就理解了,关键是代码量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
啊DAI乖
2011-08-25 · TA获得超过105个赞
知道答主
回答量:177
采纳率:0%
帮助的人:173万
展开全部
简单的说,冒泡排序法就是,有几个人比打架谁厉害,他们站成了一列,最后一个人和倒数第二个人打架,赢的继续跟倒数第三个打架,这样打到最后,最后,就打出了第一个最厉害的。先把他放出队列。继续是队列最后一个人和倒数第二个打架,继续这样打下去,选出了第二个仅次于最厉害的那个人,放出队列,以此类推,最后就可以排序好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天亮以前123
2011-08-25
知道答主
回答量:26
采纳率:0%
帮助的人:7.3万
展开全部
void sum()
{
int a[6]={5,2,6,4,1,3};
int i,t,j;
for(i=0;i<6-1;i++)
{
for(j=0;j<6-1-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<6;i++){printf("%d",a[i]); }
printf("\n");
}*/

这是一个C语言的例子 冒泡就是一个一个的比较只和后一个比然后在和后一个比这样依次到排好!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式