- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
正版课件 内容可修改
5.6冒泡排序
主讲:廖智蓉
项目5简易的通讯录管理
冒泡排序
冒泡排序思想
将数据按由小到大(升序)进行冒泡 排序的具体思路:
(1)通过相邻两个数之间的比较和交换;
(2)使排序码(数值)较小的数逐渐从底部移向顶部,
排序码较大的数逐渐从顶部移向底部;
(3)这个过程就像水底的气泡一样逐渐向上冒,故而得名。
冒泡排序演示动画
输入6个数,(34,2,56,5,13,23)用“冒泡法”对6个数排序(由小到大)。
趟数-i
每趟比较次数—j
交换
i=1
不交换
交换
交换
交换
第1趟排完后:
5
冒泡排序演示动画
输入6个数,(34,2,56,5,13,23)用“冒泡法”对6个数排序(由小到大)。
趟数-i
每趟比较次数—j
不交换
i=2
交换
交换
交换
第2趟排完后:
4
冒泡排序演示动画
输入6个数,(34,2,56,5,13,23)用“冒泡法”对6个数排序(由小到大)。
趟数-i
每趟比较次数—j
不交换
i=3
不交换
不交换
第3趟排完后:
3
冒泡演示结论
(2)对于n个数的排序,需进行n-1趟冒泡,
第i趟比较次数需进行n-j次两两比较。
(1)对于6个数的排序,需进行5趟冒泡,
第i趟比较次数需进行6-i次两两比较。
冒泡排序实现
for(i=1;i=5;i++) // i是控制冒泡的趟数
for(j=0;j6-i;j++) // j是每趟比较次数的控制
if(a[j]a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;} //当遇到前者a[j]比后者a[j+1]大时,进行交换,否则不交换
#include stdio.h
main()
{int a[6], i,j,t;
printf(请输入任意的6个整数:\n);
for(i=0;i6;i++)
scanf(%d,a[i]);
printf(“排序后输出序列:\n”);
for(i=0;i6;i++)
printf(%3d,a[i]);
}
输入任意6个整数用“冒泡法”对6个数排序(由小到大)。
真题练一练
A
A
B
C
课后练一练
1、从键盘输入任意10个同学的大学英语成绩,用“冒泡法”对10个分数排序(由大到小)后输出相应的名次。
文档评论(0)