![冒泡排序真题_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/15/b995fd7f-f192-49ca-9664-9618ff1074c0/b995fd7f-f192-49ca-9664-9618ff1074c01.gif)
![冒泡排序真题_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/15/b995fd7f-f192-49ca-9664-9618ff1074c0/b995fd7f-f192-49ca-9664-9618ff1074c02.gif)
![冒泡排序真题_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/15/b995fd7f-f192-49ca-9664-9618ff1074c0/b995fd7f-f192-49ca-9664-9618ff1074c03.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、16.【加试题】n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据 已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框Listl中显示排序前数据,单击"排序”按钮 Commaiidl,在列表框List2中显示这些数据按升序排序后的结果,在标签 Label3中显示排序过程的加工遍 数。运行效果如第16题图所示。实现上述功能的 VB代码如下,但加框处代码有错,请改正。Dim a(1 To 8) As In tegerDim n As In t
2、egerPrivate Sub Form_Load()'n=8,排序前数据存储 在数组a中,并在 列表框Listl中显示'代码略End SubPrivate Sub Comma nd1_Click()Dim flag As Boolean' flag 值为True表示一遍加工中发生过交换i = 1flag = TrueDo While i <= n - 1 Or flag = True'(1)flag = FalseFor j = n To i + 1 Step -1If a(j) < a(j - 1) Thenk = a(j): a(j) = a(
3、j - 1): a(j - 1) = kflag = TrueEnd IfNext ji = i + 1LoopLabel3.Caption ="排序过程的加工遍数为 ” + 囱|'( 2)For i = 1 To nList2.Addltem Str(a(i)Next iEnd Sub排序前数据排序后數攝443S7S37胎4456943T38排序4445697896排序过程的加工遍数为5第16题图16.【加试题】小吴为了研究冒泡排序过程中数据的“移动”情况,编写了一个VB程序,功能如下:在列表框Listl中显示排序前数据(存储在数组a中),在文本框Textl中输入 初始位置
4、(即下标值),单击“排序”按钮Comma nd后,在标签Labell中显示指定初始位置的数据在排序过程中的位置变化情况,排序后的数据显示在列表框List2中。程序运行界面如图所示。实现上述功能的VB程序如下,但加框处代码有错,请改正。Dim a(1 To 8) As In tegerDim n As In tegerPrivate Sub Form_Load()a(1)= 30: a(2)= 47:a(3)= 30: a(4)= 72a(5)= 70: a(6)= 23:a(7)= 99: a(8)= 24n = 8Fori = 1 To 8List1.Addltem a(i)Next iEn
5、d SubPrivate Sub Comma nd1_Click()Dim i As In teger, j As In teger, k As In tegerDim pos As In tegerDim s As Stri ngs = Text1.Textpos = Val(Text1.Text)For i = 1 To n - 1For j = n To i + 1 Step -1If a(j) < a(j - 1) The nk = a(j)a(j - 1) = a(j)a(j) = k如果pos位置的数据参与交换,则更新pos值,记录pos变化位置If pos = j The
6、npos = j- 1s = s + " t " + Str(pos)Elsepos = js = s + " t " + Str(pos)End IfEnd IfNext jNext iLabell.Caption ="位置变化情况:” + sFor i = 1 To nList2.Addltem Str(a(i)Next iEnd Sub16.【加试题】小李基于冒泡排序算法编写了一个VB程序,功能如下:在文本框Text1中显示排序前的数据,单击"排序”按钮Command1在文本框Text2中显示剔除重复数据后的数组兀素数组兀素的含
7、义16a(1)排序f存储班级数na(2)从a(2)到a(第1、2、第n+1)依次存储1 n个班级人数a(n +1)a(n+2)从a(n+2)依次存储第1班每 个学生的单科成绩、第 2班 每个学生的单科成绩、第n班每个学生的单科成绩升序排序结果。程序运行界面如下图所示。排序后埶据9 10 12 15 16 17排序前数捐12 17 10 16 15 10 17 9实现上述功能的 VB程序如下,但加框处代码 有错,请改正。Const n = 10Dim a(1 To n) As In tegerPrivate Sub Comma nd1_Click()Dim i As In teger, j As In teger, t AsIn tegerDim bottom As In teger'获取排序前数据依次存储在数组a中,并在文本框Text1中显示。代码略bottom = ni = 1Do While i <= bottom - 1For j = bottom To i + 1 Step -1If a(j) < a(i) Thent = a(j): a(j) = a(j - 1): a(j - 1) = tElseIf a(j) = a(j - 1) Then '相邻两个数据相等,进行剔除处理a(bobottom = bot
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂房合同转租协议模板范本
- 打印机买卖合同范本
- 个人二手房买卖合同范本
- 货物运输服务框架合同范本
- 不锈钢板材购销合同
- 设备安装工程承包劳务合同
- 厦门分包合同范本
- 展览场地租赁、服务合同
- 星载微波散射计遥感热带气旋海面风场的真实性检验方法研究
- 商丘现代农业园建设项目可行性研究报告
- 最高法院示范文本发布版3.4民事起诉状答辩状示范文本
- 2024年英语高考全国各地完形填空试题及解析
- 2024至2030年中国餐饮管理及无线自助点单系统数据监测研究报告
- 2024年服装门店批发管理系统软件项目可行性研究报告
- 体育概论(第二版)课件第三章体育目的
- 《氓》教学设计 2023-2024学年统编版高中语文选择性必修下册
- 化学元素周期表注音版
- T-GDASE 0042-2024 固定式液压升降装置安全技术规范
- 香港朗文4B单词及句子
- 运动技能学习与控制课件第五章运动中的中枢控制
- 财务部规范化管理 流程图
评论
0/150
提交评论