《冒泡排序算法的数组实现.ppt》由会员分享,可在线阅读,更多相关《冒泡排序算法的数组实现.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 冒泡排序冒泡排序(Bubble sortBubble sort)与与VBVB数组实现数组实现计算机技术系计算机技术系 张志辉张志辉 本学期考试成绩都出来了,对于总分前本学期考试成绩都出来了,对于总分前三名发放奖学金。我们需要设计程序,对全三名发放奖学金。我们需要设计程序,对全班同学成绩按总分排序。班同学成绩按总分排序。那我们应该如何做?要解决这个问题,那我们应该如何做?要解决这个问题,就让我们一起来学习排序算法。就让我们一起来学习排序算法。排序问题引入排序问题引入排序:为了将一组杂乱的数据变成一组有序排序:为了将一组杂乱的数据变成一组有序的数据的数据冒泡法排序冒泡法排序(Bubble sor
2、tBubble sort)“冒泡法排序冒泡法排序”又叫又叫“起泡法排序起泡法排序”,是一种比,是一种比较简单、易懂的交换排序方法,它通过相邻较简单、易懂的交换排序方法,它通过相邻元素进行比较和交换,逐步将一个无序序列元素进行比较和交换,逐步将一个无序序列排列为一个有序序列。排列为一个有序序列。根据棋牌规则,把下列根据棋牌规则,把下列根据棋牌规则,把下列根据棋牌规则,把下列5 5张牌从小到大排列张牌从小到大排列张牌从小到大排列张牌从小到大排列 (观赏(观赏FLASH)冒泡法排序冒泡法排序(Bubble sortBubble sort)理解:冒泡排序是在一列数据中把较小的数据理解:冒泡排序是在一列
3、数据中把较小的数据逐次向上推移的一种排序技术。逐次向上推移的一种排序技术。冒泡排序的数组实现冒泡排序的数组实现用数组来存贮一系列同类型的数据,然后调用数组来存贮一系列同类型的数据,然后调整数组中的元素。整数组中的元素。例如:例如:Dim R(5)as integer 定义一个数组变量定义一个数组变量R 冒泡排序的数组实现冒泡排序的数组实现把数组的底端当做水底而把另一端比作水面,把数组的底端当做水底而把另一端比作水面,不断把较小的数据移动到水面或较大的数据不断把较小的数据移动到水面或较大的数据移动到水底,最终就可以得到排好序的数组。移动到水底,最终就可以得到排好序的数组。冒泡法排序示意图冒泡法排
4、序示意图12344444111111111114442222222222244335333333334435555555555R(1)R(2)R(3)R(4)R(5)算法分析算法分析第一次冒泡排序(第一次冒泡排序(i=1),j从从5到到2 for j=5 to 2 step-1 if R(j)R(j-1)then 交换交换R(j)和和R(j-1)的值的值第二次冒泡排序(第二次冒泡排序(i=2),j从从5到到3 for j=5 to 3 step-1 if R(j)R(j-1)then 交换交换R(j)和和R(j-1)的值的值第三次冒泡排序(第三次冒泡排序(i=3),j从从5到到4 for j=
5、5 to 4 step-1 if R(j)R(j-1)then 交换交换R(j)和和R(j-1)的值的值第四次冒泡排序(第四次冒泡排序(i=4),j从从5到到5 for j=5 to 5 step-1 if R(j)R(j-1)then 交换交换R(j)和和R(j-1)的值的值程序代码程序代码For i=1 to 4 当当i从从1 到到4变化变化 for j=5 to i+1 step -1 每次每次j从从5到到 i+1 if R(j)R(j-1)then K=R(j):R(j)=R(j-1):R(j-1)=K end if next j next i当当i i从从1 1 到到4 4变化时变化时 每次每次j j从从5 5到到 i+1i+1 R(jR(j)R(j-1)R(j-1),则交换它们,则交换它们两个数进行数据交换,两个数进行数据交换,就像两杯水进行交换,就像两杯水进行交换,需要再拿一个空杯需要再拿一个空杯R(j)R(j-1),则交换它们则交换它们总结(总结(*)数组数组R(1 to n)for i=1 to n-1 for j=n to i+1 step -1i -控制循环次数控制循环次数j -控制元素对比与交换控制元素对比与交换