学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
小军学习了冒泡排序算法后觉得算法还有优化的余地:假设区间[1,i]内的元素已经有序,接下来对[i+1,n]所有元素进行扫描比较,扫描完后记住最后一次交换的位置last_exchange,这个位置说明了区间[i+1,last_exchange-1]内的元素是有序的。标准冒泡排序算法下遍的扫描区间是[i+2,n],而有了last_exchange位置信息后,下一遍的扫描区间只要[last_exchange,n]即可。小军用VB实现了该算法,运行的界面如图所示。
           
Const maxn=1000
Dim a(0 To maxn)As Long
Private Sub Form Load()
'产生maxn个不相同的数据,并把他存储在a数组中,代码略
End Sub
Private Sub Command1_Click()
Dim i As Long,j As Long,tmp As Long,cnt As Long
Dim last_exchange As Integer '记录最后一次交换位置
Dim tmp_pos As Integer '本次交换的位置
cnt =0:i=1
last_exchange =0:tmp_pos=1
Do While '改错

last_exchange=tmp_pos

For j=maxn To last_exchange+1 Step-1

If a(j)<a(j-1) Then
tmp=a(j):a(j)=a(j-1):a(j-1)=tmp
    
cnt=cnt+1
End If

Nextj

i=tmp_pos

Loop
'输出,代码略
End Sub
(1)代码“Private Sub Command1_Click()”中的Click是________(单选,填子母:A.对象名/B.属性名/C.事件名)
(2)程序代码中,Do While语句加框处有错,请改正。
应改为_________________________
(3)程序代码中,将划线处语句补充完整。
①处代码为________________________
(4)程序代码中,cnt变量的含义是________。(单选,填字母:A.表示一趟加工中交换次数/B.排序中总共交换次数/C.排序中总共比较次数)
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交