解决查找问题的算法流程图如图VB
发布网友
发布时间:2022-05-13 21:45
我来回答
共1个回答
热心网友
时间:2023-10-31 02:29
这个是"对分查找"算法,你提问题要把代码分行写,这样人家很难看清楚,应该象如下所示:
'===================================================================
Private Sub Command1_Click()
Dim key As String , i As Integer
Dim j As Integer , found As Boolean
i = 1: j = 200 : found = False
(1)
Do While i <= j And Not found
m = Int((i + j) / 2)
If cno(m) = key
Then found = True
ElseIf (2) Then
i = m + 1
Else
j = m – 1
End If
Loop
If Not found Then
Text2.Text = "找不到"
Else
Text2.Text = cno(m)
End If
End Sub
程序中划线处(1)应填入
程序中划线处(2)应填入
'===================================================================
代码中最后第二行那个“End If”,是我帮你2上去了,另外数组的名称前面是cno,后面是cnum,
我改为cno了。
显然,key没有赋值,所以(1)处应该是通过键盘输入要查找的数值:
Key = Val(InputBox("请输入要找的数值。")
而对分查找,需要数组是有序的,可以升序也可以降序,你没有告诉我题目是如何说的?
如果数组是升序的:
(2)应该是:cno(m) < key
如果数组是降序的:
(2)应该是:cno(m) > key
显然,这只是程序的一部分,因为其它部分必须处理数组的建立,排序等。
这个问题,应该是教科书上的问题,好好学习吧,否则没法工作!