2022年VB冒泡排序专题_第1页
2022年VB冒泡排序专题_第2页
2022年VB冒泡排序专题_第3页
2022年VB冒泡排序专题_第4页
2022年VB冒泡排序专题_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VB 冒泡排序专题 班级 姓名学问点回忆:1、冒泡排序的特点:从后往前两两比较数据,不符合大小关系的两数 2、关于冒泡需懂得:交换 至达到要求; 升序:将后数小于前数的两个数进行交换;降序:将后数大于前数的两数进行交换; N 个数最多进行 N-1 遍排序;两数比较的次数最多为 N*N-1/ 2;两数交换次数最多为:N*N-1/ 2; 冒泡有很多改进算法,在练习中要加强懂得和记录;3、冒泡经典代码: 以降序 为例 for i=1 to n- 1 变量 i 把握遍数 n-1 for j=n to i+1 step -1 把握每次比较次数 n-i 和方向if djdj-1 then 不中意降序(后项

2、 前项)就交换temp=dj : dj=dj-1 :dj-1=tempend ifnext jnext ifor i=1 to n-1 for j=n-1 to i step -1 理论上而言, 只需把握每次比较次数 n-i 即可if djdj+1 then 依据 j 的初值和终值判定是 j+1 仍是 j-1temp=dj : dj=dj+1 :dj+1=tempend ifnext jnext i冒泡经典算法默认数据从后往前冒,第一次比较的两个数确定是 an与 an-1,确定是先把最值放 a1中;而事实上冒泡也可以从前往后冒,第一次比较的两个数确定是 a1与 a2,确定是先把最值放在 an中

3、;for i=n-1 to 1 step -1 变量 i 把握遍数 n-1 for i=n-1 to 1 step -1 for j= 1 to i for j= 2 to i+1 把握比较次数 n-i 和方向if djdj-1 then temp=dj : dj=dj+1 :dj+1=temptemp=dj : dj=dj-1 :dj-1=tempend if end ifnext j next jnext i next i4、字符串的排序:可以排序,依据字符的 ASCII码; 从第一个字符开头比较,直到比出大小,即当字符串第一个字符一样时,依据其次个字母的 ASCII码排 ,以此类推; 例

4、: “bcd” 大于“ adb” ,“ efad” 小于“ efcd” ;巩固练习:1、在运动会上, 男生第一组 6 位选手的百米成果(单位: 秒)分别是 “ 13.4、12.3、11.2、13.8、13.1、11.0” ,如使用冒泡排序法将该组的成果按第一名、其次名、第三名 的次序排序,就第一遍排序后的次序是();两遍排序后的次序是() ; A. 11.0 11.2 13.8 13.4 12.3 13.1 B.11.0 12.3 11.2 13.8 13.1 13.4 C. 11.0 11.2 13.4 12.3 13.1 13.8 D.11.0 13.4 12.3 11.2 13.8 13

5、.1 2、有一组 10 个数据的无序序列,利用冒泡排序算法进行从小到大的排序,需要比较的次数和最多交换的次数,最多需要进行加工的遍数分别为()A. 9,45,9 B. 45,15,9 C.45,45,9 D.15,45,8 3、在 NBA某赛季中,快船队 5 场竞赛得分依次为 97,89,111,70,90,如接受冒泡排序算法对其进行从小到大排序,在整个排序过程中,数据 97 被交换的次数是 A 1 次 B2 次 C 3 次 D4 次4、对储备在 stu 0 to n 中的 n+1 个元素用冒泡排序算法进行排序,元素交换次数的范畴和元素比较次数的值分别为()A、0 , n ,(n-1 )*n/

6、2 B C、0 ,(n+1)*n/2 ,( n+1)*n/2 D、1 ,( n+1) *n/2 ,(n-1 )*n/2 、1 ,n-1 ,(n+1)*n/2 5、以下关于排序的算法,不正确选项() A 对 N 个数组元素进行排序,冒泡排序和选择排序排序的遍数一样 B 对 N 个数组元素进行排序,冒泡排序和选择排序比较的次数一样 C对 N 个数组元素进行排序,冒泡排序和选择排序在排序过程中交换次数一样 D一般情形下,选择排序比冒泡排序效率更高 6、有如下程序段 : For i=7 to 5 step -1 For j=7 to 9-i step -1 If ajaj-1 then k=aj:aj

7、=aj-1:aj-1=k End if Next j Next i 数组元素 a1 到 a7 的数据依次为3,9,1,5,8,6,2 经过该程序段加工后, a1 到 a3 排列为 A1 2 3 B 9 8 6 C 3 9 1 D 8 6 5 7、有如下 VB程序段,已知数组 a 中有 10 个元素,储存的数据分别为:56、21、18、64、72、49、3、7、22、 80,就程序运行后变量 m的值为1m=0:i=1 Do while i=10 if mai+1 then t=ai:ai=ai+1:ai+1=t Next i print 210、数组 a(1 to 10 中储存的数据依次分别为:

8、80、7、 56、21、18、64、72、49、38、22,就程序运行后变量 m的值为 1 j的值为 2 text1.text中显示的内容为3;m=1 For j=2 to 11 step 1 If am=aj-1 then m=j-1 Next j Text1.text=straj-2 11、假设有200 个数字储备在数组中,数组下标从1 开头,请运用冒泡排序及冒泡排序的变式将数组按要求排列,在横线上填上正确的代码;降序(常规冒泡)升序(常规冒泡)for i=1 to 199 1 step -1 for a=1 to 199 for j=200 to for b=1 to a step -1

9、 if aj 2 then if sb2 then temp=aj temp=sb aj=aj-1 3 aj-1=temp sb+1=temp end if end if next j next b next i next a 降序(从前往后冒,小的数往后移)升序(从前往后冒,大的数往后移)for i=199 to 1 step -1 for x=199 to 1 step -1 for j=1 to i for y=2 to 1if aj 2 then if ay2 then temp=aj ay=ay+ay-1 aj=aj+1 3aj+1=temp ay=ay-ay-1 end if en

10、d if next j next y next i next x 12、在冒泡排序时,当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工;为此小明对冒泡排序进行了优化,编写了一个 VB程序,功能如下,程序窗体加载即运行时,在列表框 List1 中显示随机产生的 n 个0,100 整数,单击“ 排序” 的按钮 Command1,在列表框 List2 中显示降序排序后的结果,运行的成效图所示;实现上述功能的Const n As Integer = 10 Dim a1 To n As Integer Private Sub Form_Load Dim i As Integer Rand

11、omize For i = 1 To n 1 List1.AddItem Strai Next i End Sub VB代码如下,请在划线处填空,并改正有错的加框处代码;Private Sub Command1_Click Dim tmp As Integer, i As Integer, j As Integer, k As Integer For 2 k = 0 For j = n To i + 1 Step -1 If aj aj - 1 Then tmp = aj: aj - 1 = aj: aj = tmp k = k + 1 应修改为: End If Next j If Then

12、i = n K0 应修改为: Next i For i = 1 To n 3 Next i End Sub 13、n 个数据的冒泡排序需要经过n-1 遍加工, 每一遍加工自下而上比较相邻两个数据,把较小者交换到上面;小刘发觉:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工;为此,小刘对 算法进行优化, 编写了一个 VB程序, 功能如下: 运行程序时, 在列表框 List1 中显示排序前数据,单击“ 排 序” 按钮 Commaiid1,在列表框 List2 中显示这些数据按升序排序后的结果,在标签 Label3 中显示排序过程的加工遍数;运行成效如以下图;实现上述功能的 Dim a1 To 8,n As Integer Private Sub Form_Load VB代码如下,但加框处代码有错,请改正; n=8, 排序前数据储备在数组a 中,并 在列表框Listl中显 示;代码略End Sub Private Sub Command1_Click Dim flag As Boolean flag值为 True 表示一遍加工中发生过交换i = 1:flag = True 应修改为:Do While i = n Or flag f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论