C语言冒泡排序算法 ppt课件完整版.pptx
冒泡排序算法,选自C语言程序设计基础,垫江职业教育中心学校,C,教者:李亚,考纲分析:,掌握使用一维数组的常见处理算法; 说明:能找出最大值、最小值,计数,统计总数、平均数,查找、排序、插入等,排序,#include stdio.hmain() int a,b,c,t;scanf(%d%d%d,输入三个整数,从小到小排列输出。,a,b,c,小,大,#include stdio.hmain() int a,b,c,d,t;scanf(“%d%d%d%d”,输入四个整数,从小到大排列输出。,a,b,c,小,大,d,开始,下一步,仔细观察四个圆柱的排队过程,分析这四个圆柱是如何进行排队的,下一步,结论,?,算法思想,动画演示,提出问题,填流程图,先将第一个元素和第二个元素进行比较,若为逆序,则交换;接着比较第二个和第三个元素;依此类推,直到第N-1个元素和第N个元素进行比较、交换为止。如此经过一趟排序,使最大的元素被安置到最后一个元素的位置上。然后,对前N-1个元素进行同样的操作,使次大的元素被安置到第N-1个位置上。重复以上过程,直到没有元素需要交换为止。,算法思想,动画演示,提出问题,填流程图,5,8,7,6,9,2,初 始 数 据,算法思想,动画演示,提出问题,填流程图,点击开始,5,8,7,6,9,2,8,第一趟比较结束找到最大数9,两两比较5次。,算法思想,动画演示,提出问题,填流程图,点击开始,5,8,7,6,9,2,第二趟比较结束找到第二大数8,两两比较4次。,算法思想,动画演示,提出问题,填流程图,点击开始,5,8,7,6,9,2,第三趟比较结束找到第三大数7,两两比较3次。,点击开始,5,8,7,6,9,2,第四趟比较结束找到第四大数6,两两比较2次。,算法思想,动画演示,提出问题,填流程图,点击开始,5,8,7,6,9,2,第五趟比较结束找到第五大数5,两两比较1次。,算法思想,动画演示,提出问题,填流程图,5,8,7,6,9,2,6个数据排序,需要比较5趟,每趟比较的次数分别是5、4、3、2、1次。那么N个数据排序,又该比较几趟,每趟比较几次呢?,算法思想,动画演示,提出问题,填流程图,算法思想,动画演示,提出问题,填流程图,1,2,1,第三变量,1,算法思想,动画演示,提出问题,过程图,aiai+1,0,4,5,5-j,0,4-j,#includestdio.h main() int a6,i,j,t; ,for(i=0;i6;i+) printf(%d n,ai);,for(i=0;i6;i+) scanf(%d,for(j=0;j6-1;j+),for(i=0;iai+1) t=ai; ai=ai+1; ai+1=t; ,#includestdio.h#defin N 9main() int aN,i,j,t; ,for(i=0;iN;i+) printf(%d n,ai);,for(i=0;iN;i+) scanf(%d,for(j=0;jN-1;j+),for(i=0;iai+1) t=ai; ai=ai+1; ai+1=t; ,谢谢聆听,C,Thank you,