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