资源描述:
《动画演示(冒泡法).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、算法实现动画演示范俊冒泡排序法(升序)设计算法思路:如果对包含有n个数的数组a[n]实行冒泡排序,则需要n-1轮比较;第1轮比较时,从数组元素a[0]开始,依次比较a[0]和a[1],a[1]和a[2],a[2]和a[3],…….,a[n-2]和a[n-1],并将大数后移,比较的结果是将数组最大数存入数组尾元素a[n-1]中;第2轮比较时,同样从数组元素a[0]开始,依次比较a[0]和a[1],a[1]和a[2],a[2]和a[3],…….,a[n-3]和a[n-2],并将大数后移,比较的结果是数组剩余元素的最大数存入元素a[n
2、-2]中;依此类推,第n-1轮比较时,比较a[0]和a[1],将大数后移,存入元素a[1]中。排序完毕,数组元素按照升序排列。说明:大数后移是指将每一对参与比较的元素的较大值存入后面的元素,较小值存入前面的元素。冒泡法演示(升序)程序段:#includemain(){ints[10]={2,9,3,7,5},n=5,i,j,t;for(i=0;is[j+1]){t=s[j];s[j]=s[j+1];s[j+1]=t;}printf(“%d
3、%d%d%d%d”,s[0],s[1],s[2],s[3],s[4]);}注意:该PPT采用单步运行的方式演示了冒泡排序法的实现过程,并实时显示各变量的值。冒泡法演示(升序)程序段:#includemain(){ints[10]={2,9,3,7,5},n=5,i,j,t;23957s[0]s[1]s[2]s[3]s[4]for(i=0;is[j+1]){t=s[j];s[j]=s[j+1];s[j+1]=t;}5nijprintf(
4、“%d%d%d%d%d”,s[0],s[1],s[2],s[3],s[4]);}定义变量,赋初值i=0时,表示数组元素的第一轮比较,该轮比较会将参与比较的两个数的较大数后移,比较的最终结果是数组中最大数移到最后。冒泡法演示(升序)程序段:#includemain(){ints[10]={2,9,3,7,5},n=5,i,j,t;23957s[0]s[1]s[2]s[3]s[4]for(i=0;is[j+1]){t=s[j];s[j]=
5、s[j+1];s[j+1]=t;}5n0ijprintf(“%d%d%d%d%d”,s[0],s[1],s[2],s[3],s[4]);}j=0时,比较变量s[0]和s[1]中值的大小,将较大数存入s[1]冒泡法演示(升序)程序段:#includemain(){ints[10]={2,9,3,7,5},n=5,i,j,t;23957s[0]s[1]s[2]s[3]s[4]for(i=0;is[j+1]){t=s[j];s[j]=s[j
6、+1];s[j+1]=t;}5n0i0j值为4printf(“%d%d%d%d%d”,s[0],s[1],s[2],s[3],s[4]);}冒泡法演示(升序)程序段:#includemain(){ints[10]={2,9,3,7,5},n=5,i,j,t;32957s[0]s[1]s[2]s[3]s[4]for(i=0;is[j+1]){t=s[j];s[j]=s[j+1];s[j+1]=t;}5n0i0j值为4printf(“%d
7、%d%d%d%d”,s[0],s[1],s[2],s[3],s[4]);}j=0时,比较变量s[0]和s[1]中值的大小,将较大数存入s[1]冒泡法演示(升序)程序段:#includemain(){ints[10]={2,9,3,7,5},n=5,i,j,t;32957s[0]s[1]s[2]s[3]s[4]for(i=0;is[j+1]){t=s[j];s[j]=s[j+1];s[j+1]=t;}5n0i1j值为4printf(“%
8、d%d%d%d%d”,s[0],s[1],s[2],s[3],s[4]);}j=1时,比较变量s[1]和s[2]中值的大小,将较大数存入s[2]冒泡法演示(升序)程序段:#includemain(){ints[10]={2,9,3,7,5}