冒泡排序算法及程序实现ppt课件.ppt
《冒泡排序算法及程序实现ppt课件.ppt》由会员分享,可在线阅读,更多相关《冒泡排序算法及程序实现ppt课件.ppt(28页珍藏版)》请在三一办公上搜索。
1、1冒泡排序算法的基本思想冒泡排序是在一列数据中把较小(大)的数据逐次向上推移的一种排序技术。该算法的基本思想是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元素中的数据,将较小(大)的数据换到上面的一个元素中。重复这一过程,直到处理完最后两个元素中的数据,称为一趟加工。当第一趟加工完成时,最小(大)的数据已经上升到第一个元素的位置。然后对余下的n1个元素重复上述处理过程,直至最后余下两个数据的比较和交换。,34 冒泡排序算法及程序实现,由于每一趟加工都是将本趟最小(大)的数元素像气泡一样浮至本趟的顶端位置,所以称作冒泡排序。但冒泡也有变式,即将
2、数组元素进行两两比较,若相邻两个元素中的数据不符合排序,就交换位置。某数组c共由4个元素构成,每个元素的值如下表所示:,采用冒泡排序思想进行升序排序,从最下面的一个元素起,自下而上的比较相邻两个元素中的数据,整个排序过程如下所示:第一趟加工处理过程:,第一趟加工共比较3次,处理完成后,最小的元素15存储在了c(1)中。,第二趟加工处理过程:,第二趟加工共比较2次,处理完成后,第2个最小的元素23存储在了c(2)中。,第三趟加工处理过程:,第三趟加工共比较1次,处理完成后,第3个小的元素32存储在了c(3)中。4个元素共需进行3趟加工处理,总的比较次数为3216次。对n个元素的数组,用冒泡法进行
3、排序时,共需比较n(n1)/2次。,2冒泡排序算法的程序实现冒泡排序程序的实现可用双重For循环来实现,外层For循环控制是第几遍加工,内层For循环控制进行排序的数组元素下标的变化范围。由于每趟加工完成后,进行排序的范围会发生变化(每趟减少一个),故内层For循环变量的下界由外层循环变量决定。,现有n个数据,分别存放在数组变量a(1 To n)当中,用冒泡排序算法表示结构如下:,用冒泡排序算法程序实现的片段如下:For i1 To n1 For jn To i1 Step 1 If a(j)a(j1) Then ta(j):a(j)a(j1):a(j1)t End If Next jNext
4、 i当外循环变量i取1时,即第1趟加工时,内循环变量j的下界为i1(值为2),即从a(n)开始自下而上的比较相邻的两个元素中的数,如果下面的数比上面的小,则相互交换,直到a(2)与a(1)的比较为止,这样第1趟加工后将最小的数放到了a(1)中;第2趟加工,内循环变量j的下界为3,直到a(3)和a(2)的比较为止,把最小的数放到了a(2)中;这样,经过n1趟加工后,就完成了数组从小到大的排序。,中间的If语句,完成相邻的两个元素的比较过程,如果下面的数a(j)比上面的数a(j1)小,则交换a(j)与a(j1)的值。用语句ta(j):a(j)a(j1):a(j1)t来实现。3读程序时,判断冒泡排序
5、的结果是从小到大还是从大到小,方法就是分析内循环中的条件判断语句,如果交换数据的条件是前面元素小于后面元素,如a(j)a(j1),则排序结果是从大到小。反之,如果交换数据的条件是前面元素大于后面元素,如a(j)a(j1)、a(j)a(j1),则排序结果是从小到大。,注意:以下代码也可实现对数组h(共n个元素)进行冒泡排序:For i 1 To n 1 For j i 1 To n If h(i) h(j) Then t h(i): h(i) h(j): h(j) t End If Next jNext i,本节课学习要理解冒泡排序算法的基本思想,能根据冒泡排序的思想,对一组数据进行冒泡排序。掌
6、握冒泡排序算法的程序实现,能根据给出的题目自行编写冒泡程序。考查方式为选择题与填空题。,某书店在5所学校流动售书量(单位:本)分别是82、113、46、69、35。采用冒泡排序对其进行排序,若完成第一遍时的结果是35、82、113、46、69,则完成第二遍时的结果是()A35、82、113、46、69 B35、46、82、69、113C35、46、82、113、69 D35、46、69、82、113,C,2下表记录了6个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方式分别为 (),冒泡排序,降序选择排序,降序冒泡排序,升序选择排序,升序,C,3实现某排序算法的部分VB程序如下:Fo
7、r i 1 To 4 For j 5 To i 1 Step 1 If a(j)a(j1) Then ta(j):a(j)a(j1):a(j1)t Next jNext i在经过某一遍排序“加工”后,数组元素a(l)到a(5)的数据依次为“25、77、51、59、32”。则 下一遍排序“加工”后数组元素a(l)到a(5)的数据应该是 ()A25、32、77、51、59 B25、32、51、59、77C25、32、59、51、77 D25、32、51、7、59,A,4有一组原始数据:23、25、18、63、84、77、65、9、33、17。利用冒泡排序算法进行从小到大排序,最多需要进行()次加工
8、,才可以完成整个数据的排序。A5B6C8D9,D,书籍将数据3、6、9、5、8、1进行一趟冒泡排序后得到的数据刚好是小杨的银行卡密码,那么小杨的银行卡密码是()A369581B136958C135698D316958,B,在某年市机器人投蓝比赛决赛中,共有5支队伍参加,各队的最终成绩如下:82、74、66、95、70(单位:个/分钟),现用冒泡排序算法来实现这些数据的排序操作:,则在第2遍加工的操作中,共需要交换数据的次数是()A. 1次B. 2次C. 3次D. 4次,B,有如下VB程序段:s“ ”For i 1 To 3 For j 6 To i 1 Step 1 If a(j)a(j1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 冒泡 排序 算法 程序 实现 ppt 课件
链接地址:https://www.31ppt.com/p-1315433.html