《(8.36)--8.3C语言程序设计冒泡排序.ppt》由会员分享,可在线阅读,更多相关《(8.36)--8.3C语言程序设计冒泡排序.ppt(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计低低高高课间操排队高高低低低低高高将杂乱无章的数组元素,按关键字的递增或递减顺序排列的过程。排 序如何如何实现排序呢?排序呢?相相邻逆序交逆序交换 冒泡排序冒泡排序Bubble SortBubble Sort通过相邻数据比较和位置的交换,较小的数据就会逐个向前移动,好象气泡向上浮起一样,因此称之为冒泡排序。三、冒泡排序1.算法思想14389855773562486277359898145538第第2次次第第3次次第第4次次第第5次次第第6次次第第7次次第第1趟趟x0 x1x2x3x4x5x6x7int x8=48,62,35,77,55,98,38,14;第第1次次if(x0 x
2、1)x0 x1;if(x1x2)x1 x2;if(x2x3)x2 x3;if(x3x4)x3 x4;if(x4x5)x4 x5;if(x5x6)x5 x6;if(x6x7)x6 x7;if(x x )x x ;ii+1i i+1for(;)i=0 i7 i+98int x8=48,62,35,77,55,98,38,14;for(i=0;ixi+1)xi xi+1;14387755623548第第2趟趟5538777748356214 for(i=0;ixi+1)xi xi+1;for(i=0;ixi+1)xi xi+1;for(i=0;ixi+1)xi xi+1;j for(;)j=7j-j
3、0 983898557735624862773598145538x0 x1x2x3x4x5x6x7第第1趟趟77n循环N-1趟(j由N-1变化到1)n循环进行j次比较(i由0变化到j-1)n交换ai和ai+1的值 aiai+1n真n假nfor(j=N-1;j0;j+)for(i=0;i0;j-)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;for(j=N-1;j0;j-)for(i=0;ij;i+)if(aiai+1)t=ai;ai=ai+1;ai+1=t;#define N 8main()int aN=43,38,55,99,72,12,27,30,i,j,t;printf(nBefore sorted:n);for(i=0;iN;i+)printf(%5d,ai);printf(the sorted numbers:n);for(i=0;i0;j-)for(i=0;ixi+1)t=xi;xi=xi+1;xi+1=t;如何改如何改进代代码以减少循以减少循环趟数?趟数?for(j=N-1;j0 ;j-)for(i=0;ixi+1)t=xi;xi=xi+1;xi+1=t;三、冒泡排序4.改进算法&swapswap=1;swap=1;swap=0;感谢聆听