资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,3.4,对数据进行排序,冒泡排序,“明日之星英语演讲大赛” 评分出来了, 需要选出每组前三名进入决赛。我们需要设计程序, 对,选手成绩进行排序,。,那么我们应该怎样做呢?要解决这个问题,那么就让我们一起来学习排序算法。,排序的意义,排序是为了将一组杂乱的数据变成一组,有序,的数据。(递增或递减),排序法的使用时非常频繁的,在实践中,人们设计出了许多好的算法,如交换排序、插入排序、以及选择排序等等。各种算法有其自身的特点与适用范围,今天我们来学习其中人们较常用的一种:,冒泡排序法。,冒泡法排序,“冒泡法排序”也叫“起泡法排序” ,是一种比较简单、易懂的交换排序方法,它通过将相邻元素进行,比较,和,交换,,逐步将一个无序序列排列为一个有序序列。,将元素按从小到大的顺序排列称为,升序排列,,反之称为,降序排列。,理解:冒泡排序是在一列数据中把较小的数据逐次向上推移的一种排序技术。,(观赏,FLASH,),冒泡排序,根据棋牌规则,把下列,5,张牌从小排到大排列,冒泡排序,用数组来存储一系列同类型的数据,然后调整数组中的元素,.,例如,: dim A(4) as integer,定义一个数组变量,A,图,3,14,冒泡法排序示意图,A(0),A(1),A(2),A(3),A(4),这启发我们把一个数组的一端比做水底而把另一端想像成水面,不断把较小的数据移向一端或把较大的数据移向另一端,最终就可以得到排好序的数组。在这种排序的过程中,大的数就如气泡一样逐层下沉,而小的数逐个上浮,因此被形象地比喻成“冒泡”,故称为冒泡法。,算法分析,第,1,次冒泡排序时,(i=0),j,从,4,开始到,1,For j=4 to 1 step -1,if d(j)d(j-1) then,交换,d(j),和,d(j-1),的值,第,2,次冒泡排序时,(i=1),j,从,4,开始到,2,For j=4 to 2 step -1,if d(j)d(j-1) then,交换,d(j),和,d(j-1),的值,第,3,次冒泡排序时,(i=2),j,从,4,开始到,3,For j=4 to 3 step -1,if d(j)d(j-1) then,交换,d(j),和,d(j-1),的值,当,i,从,0,到,3,变化时,每次,j,从,4,到,i+1,时,d(j),比,d(j-1),小,则交换它们,第,4,次冒泡排序时,(i=3),j,从,4,开始到,4,For j=4 to 4 step -1,if d(j)d(j-1) then,交换,d(j),和,d(j-1),的值,程序代码:,For i = 0 To 3,For j = 4 To i + 1 Step -1,If,A(j,) ,A(j,- 1) Then,( ),End If,Next j,Next i,k =,A(j,):,A(j,) =,A(j,- 1):,A(j,- 1) = k,当,i,从,0,到,3,变化时,每次,j,从,4,到,i+1,时,A(j,),比,A(j-1),小,则交换它们,两个数进行数据交换,就象两杯水进行交换,需要再拿一个空杯,总结,(*),数组,A,(,n,),For i = 0 To n-1,For j = n To i + 1 Step -1,数组,d,(,1 to n,),For i = 1 To n-1,For j = n To i + 1 Step -1,i,控制循环次数,j,控制元素对比与交换,
展开阅读全文