资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,程序设计基础*,P9,-,*,冒泡算法的分析与设计,11/13/2024,1,第二讲:冒泡算法的分析与实现,课前回忆 冒泡实例,冒泡分析 冒泡实现,冒泡总结 稳固练习,11/13/2024,2,2.1冒泡排序的实例,1.,冒泡排序实例:,【从小到大】,42,36,28,23,23,42,36,28,23,28,36,42,23,28,42,36,第一轮:,第二轮:,第三轮:,11/13/2024,3,2.1冒泡排序的实例,2.冒泡实例总结:,For i=1 to n-1 在d(i)、d(i+1)、d(n)中通过位置互换最小数的存放在d(i)中;也就是选第i小的数放到第i号位置。,对冒泡排序:假设待排序的序列有n个记录,那么最多进行n-1趟排序,最大比较次数为nn-1/2。,11/13/2024,4,2.2冒泡算法的分析,For i=1,to n-1,在,d(i)、d(i+1)d(n),中通过位置互换最小数的存放在,d(i),中。也就是选第i小的数放到第i号位置,Next i,怎样把在,d(i)、d(i+1)、d(n),中通过位置互换把这些数中的最小数的存放在d(i)中,?,11/13/2024,5,2.3核心算法的实现,遍历N个数;,第i个数与剩下的n-i-1个数做比较;,即d(j)和d(j-1)之间的数据交换。,temp=d(j),d(j)=d(j-1),d(j-1)=temp,内层循环:,顺序不符:,11/13/2024,6,2.5冒泡算法的实现,11/13/2024,7,随堂练:冒泡算法填空,假设将34,45,32,12,33从小到达冒泡排序,,那么排序过程中比较的次数有 次。,交换的次数有 次。,5,9,11/13/2024,8,随堂练:冒泡算法填空,For i=1 To 冒泡排序 递增,For j=To step,If d(j)d(j-1)Then,End If,Next j,Next i,交换d(j)和d(j-1)之间的数据,n-1,temp=d(j),d(j)=d(j-1),d(j-1)=temp,n,i+1,-1,11/13/2024,9,2.6冒泡算法总结与作业,算法总结,在要排序的一组数中,对当前还未排好序的范围内的全部数,自上左而下右对相邻的两个数依次进行比较和调整,让较大的数往右沉,较小的往左上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。,课后作业,课后习题2.1、2.6、2.9,实验课上机实现冒泡算法,11/13/2024,10,
展开阅读全文