冒泡排序真题

上传人:s9****2 文档编号:489959106 上传时间:2023-06-28 格式:DOC 页数:4 大小:74.50KB
返回 下载 相关 举报
冒泡排序真题_第1页
第1页 / 共4页
冒泡排序真题_第2页
第2页 / 共4页
冒泡排序真题_第3页
第3页 / 共4页
冒泡排序真题_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《冒泡排序真题》由会员分享,可在线阅读,更多相关《冒泡排序真题(4页珍藏版)》请在金锄头文库上搜索。

1、16.【加试题】n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据 已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框Listl中显示排序前数据,单击排序”按钮 Commaiidl,在列表框List2中显示这些数据按升序排序后的结果,在标签 Label3中显示排序过程的加工遍 数。运行效果如第16题图所示。实现上述功能的 VB代码如下,但加框处代码有错,请改正。Dim a(1 To 8) As In tegerDim n As In tegerPr

2、ivate 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(j - 1): a(j - 1) = kflag = TrueEnd

3、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中输入 初始位置(即下标值),单击“排序”按钮Comma nd后,在标签Labell中显示指定初始位置的数据

4、在排序过程中的位置变化情况,排序后的数据显示在列表框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 iEnd SubPrivate Sub Comma nd1_Click()Dim i As In

5、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 npos = j- 1s = s + t + Str(pos)Elsepos = js = s + t

6、 + Str(pos)End IfEnd IfNext jNext iLabell.Caption =位置变化情况:” + sFor i = 1 To nList2.Addltem Str(a(i)Next iEnd Sub16.【加试题】小李基于冒泡排序算法编写了一个VB程序,功能如下:在文本框Text1中显示排序前的数据,单击排序”按钮Command1在文本框Text2中显示剔除重复数据后的数组兀素数组兀素的含义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

7、班 每个学生的单科成绩、第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 = bottom - 1End IfNext ji = i + 1LoopText2.Text = For i = 1 To bottomText2.Text = Text2.Text + Str(a(i) Next iEnd Sub

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号