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