- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
冒泡排序法
算法及算法实现
算法
首先比较第一个和第二个数据,将其中较小的数据放到第
个位置,较大的放到第二个位置;然后比较第二个
和第三个数据,仍将较小放到后一个位置。依此类推,
直到比较第n-1和第n个数据。这样,就将待排序序列
中的最大的一个放到了第n个数据,这个过程称为第
趟排序。
下面对前N-1个数据重复这个过程(不用考虑第n个数据,
因为它已经是最大的了),又将次大的数据放到了第
n-1个位置。一般地,第i趟冒泡排序是对第1个到第n
i+1个数据进行操作,选出原序列第大的数据放到数组
的第n+1位置。重复这个过程,直到=n1为止
算法演示
序数据4938659776132749
第一趟排序的步骤
序号
2345678
数据384657613274997
493胺颠{難不缧飞銮交焖藏位
第一趟排序后的数据和序号
序数据384657613274997
第二趟排序的步骤:
序数据384651327497697
38494保捋36持郤郾擱佖换狡竇糊稽变
观察原数据与第一、二趟排序后的数据
序数据4938659776132749
序号1
3|45
7
8
数据384657613274997
序数据384651327497697
第三趟排序
序数据3849132749657697
第四趟排序
序数据381327449657697
第五趟排序
序数据3813274949657697
第六趟排序
序数据1327384949657697
第七趟排序
序数据1327384949657697
第八趟排序
序数据1327384949657697
算法实现
#include stdio. h
#define n8
mainO
int i,j, t, aN;
〔i=0;i=N-1;i++
for(i=0;iN-1;i++)
scanf(%od, aiD
for(j=O:jN-1-1; j++)
if(alilalj+1D)
ali=alj+1
for(i=0;i=N-1;i++)
a[j+1]=t;
/*输出排序后的结果*/
printf(%d, , aidi
printf( \ n)
有下列程序
inta[4][4}={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}ik,t
for(i=0;i3;i++)
for(k-i+l; k4 k++if(ajJl]](ta[J[; aJl]Fa[k][k]; a[k][k]=t; 3
for(i=0; i4; i+ +printf(%d, s a[oji]:
程序运行后的输出结果是()。
A)6,2,1,1,
B)6,4,3,2
C)1,1,2,6,
D)2,3,4.6,
有下列程序
main()
inta[4]4{{l4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},kt
for(i=0;4;i++
for(=0:j3:j++)
for(k -j+l; k4 k++)
if(ajijaki]){t=a[j[aj[iakJ[i:akJ[=t;}/按列排序*/
for(i=0; i4: i++)printf(%d, aj[D:
程序运行后的输出结果是()
A)1.6.5,7
B)8,7,3,1,
C)47,5,2,
D)1,6,2,1,
文档评论(0)