题库 高中信息

题干

   (加试题)某排序算法如下:每一趟将一个待排序数据,按其值的大小使用对分查找思想在已排序序列中找到合适位置并插入,将所有待排序数据全部插入即完成排序。实现该算法的程序如下:在列表框List1中显示待排序数据,单击“排序”按钮Command1后,逐行显示排序过程。程序运行结果如图所示。


实现上述功能的VB程序如下,加框处代码有错,请改正。
Const n = 10 '变量n存储待排序数据个数
Dim d(1 To n) As Integer   '数组d存储待排序数据
Private Sub APrint()
'本过程实现在列表框一行中输出数组d各个元素的值,代码略。
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, tmp As Integer
Dim m As Integer, low As Integer, high As Integer
'先将待排序数据存储在数组d中,代码略。
List1.AddItem "-----------待排序数据------------"
Call Aprint    '在列表框List1中输出数组d的各个元素的值
List1.AddItem "-----------数据排序过程------------"
For i = 2 To n
tmp = d(i)
low = 1
  high = n     '(1)_____________
Do While low <= high
m = (low + high) \ 2
If tmp <= d(m) Then
high = m - 1
Else
low = m + 1
End If
Loop
For j = i - 1 To low Step -1
d(j + 1) = d(j)
Next j
   d(low) = d(i)  '(2)______________
Call APrint
Next i
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2019-04-17 09:12:24

答案(点此获取答案解析)