下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、16. 【加试题】n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击“排序”按钮Commaiid1,在列表框List2 中显示这些数据按升序排序后的结果,在标签Label3中显示排序过程的加工遍数。运行效果如第16题图所示。实现上述功能的VB代码如下,但加框处代码有错,请改正。Dim a(1 To 8) As IntegerDim n As IntegerPrivat
2、e Sub Form_Load()'n=8,排序前数据存储在数组a中,并在列表框Listl中显示 '代码略End SubPrivate Sub Command1_Click()Dim flag As Boolean 'flag值为True表示一遍加工中发生过交换i = 1flag = TrueDo While '(1) i <= n - 1 Or flag = True flag = False For j = n To i + 1 Step -1 If a(j) < a(j - 1) Then k = a(j): a(j) = a(j - 1):
3、a(j - 1) = k flag = True End If Next j i = i + 1LoopStr(i)Label3.Caption = "排序过程的加工遍数为" + '(2)For i = 1 To n List2.AddItem Str(a(i)Next iEnd Sub第16题图16【加试题】小吴为了研究冒泡排序过程中数据的“移动”情况,编写了一个VB程序,功能如下:在列表框List1中显示排序前数据(存储在数组a中),在文本框Text1中输入初始位置(即下标值),单击“排序”按钮Command1后,在标签Label1中显示指定初始位置的数据在排序
4、过程中的位置变化情况,排序后的数据显示在列表框List2中。程序运行界面如图所示。实现上述功能的VB程序如下,但加框处代码有错,请改正。Dim a(1 To 8) As IntegerDim n As IntegerPrivate 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 = 8For i = 1 To 8List1.AddItem a(i)Next iEnd SubPrivate Sub Command1_Click()Dim i A
5、s Integer, j As Integer, k As IntegerDim pos As IntegerDim s As Strings = Text1.Textpos = Val(Text1.Text)For i = 1 To n - 1For j = n To i + 1 Step -1If a(j) < a(j - 1) Then k = a(j)a(j - 1) = a(j)a(j) = k'如果pos位置的数据参与交换,则更新pos值,记录pos变化位置If pos = j Then pos = j - 1s = s + "" + Str(po
6、s) Elsepos = js = s + "" + Str(pos)End IfEnd IfNext jNext iLabel1.Caption = "位置变化情况:" + s数组元素数组元素的含义a(1)存储班级数na(2)从a(2)到a(n+1) 依次存储第1、2、第n个班级人数a(n+1)a(n+2)从a(n+2) 依次存储第1班每个学生的单科成绩、第2班每个学生的单科成绩、第n班每个学生的单科成绩 For i = 1 To nList2.AddItem Str(a(i)Next iEnd Sub16【加试题】小李基于冒泡排序算法编写了一个VB程
7、序,功能如下:在文本框Text1中显示排序前的数据,单击“排序”按钮Command1,在文本框Text2中显示剔除重复数据后的升序排序结果。程序运行界面如下图所示。实现上述功能的VB程序如下,但加框处代码有错,请改正。Const n = 10Dim a(1 To n) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As Integer, t As IntegerDim bottom As Integer'获取排序前数据依次存储在数组a中,并在文本框Text1中显示。代码略bottom = ni = 1Do While i <= bottom - 1 For j = bottom To i + 1 Step -1 If a(j) < a(i) Then t = a(j): a(j) = a(j - 1): a(j - 1) = t ElseIf a(j) = a(j - 1) Then ' 相邻两个数据相等,进行剔除处理 a(bottom)=a(j) bottom = bottom - 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白灰 销合同模板
- 借钱给朋友合同模板
- 企业解聘合同模板
- 合同模板 委托书
- 最钢筋采购合同模板
- 2024产品代理合同协议范本
- 合作养肉鹅合同模板
- 抖音小店合伙协议合同范本
- 高新区房屋合同范本
- 杨浦企业食堂承包合同范本
- 部编一年级上册课件《zhchshr》课件
- 部编版二年级语文上册《望庐山瀑布》教学课件2篇21
- 学习领悟在全国民族团结进步表彰大会上重要讲话心得体会
- 《宁夏闽宁镇:昔日干沙滩今日金沙滩》教案 2023-2024学年高教版(2023)中职语文职业模块
- 红薯种植课程设计
- 幼儿园大班艺术课件:《国旗国旗红红的哩》
- 动火作业审批表
- 饮用水卫生安全知识培训PPT.ppt
- 5G+智慧物流项目创业计划书(模板范文)
- 苏教版五年级数学上册第三单元测试卷(含答案)
- 浅谈小学数学教学中的儿童心理学应用
评论
0/150
提交评论