📄 查找.frm
字号:
VERSION 5.00
Begin VB.Form 查找算法
AutoRedraw = -1 'True
Caption = "查找算法"
ClientHeight = 4845
ClientLeft = 60
ClientTop = 345
ClientWidth = 9900
BeginProperty Font
Name = "Arial Black"
Size = 21.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
LinkTopic = "Form1"
ScaleHeight = 4845
ScaleWidth = 9900
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton cmdZB
Caption = "折半查找"
Height = 795
Left = 7560
TabIndex = 6
Top = 3840
Width = 2175
End
Begin VB.CommandButton cmdSX2
Caption = "顺序查找FOR"
Height = 795
Left = 3720
TabIndex = 5
Top = 3840
Width = 3435
End
Begin VB.CommandButton cmdSX1
Caption = "顺序查找DO"
Height = 795
Left = 120
TabIndex = 2
Top = 3840
Width = 3135
End
Begin VB.Label lblSorted
BackColor = &H8000000E&
Height = 855
Left = 60
TabIndex = 4
Top = 2640
Width = 9735
End
Begin VB.Label lblOrgNum
BackColor = &H8000000E&
Height = 795
Left = 120
TabIndex = 3
Top = 960
Width = 9675
End
Begin VB.Label Label2
Caption = "有序数列S(): "
Height = 675
Left = 120
TabIndex = 1
Top = 1860
Width = 3315
End
Begin VB.Label Label1
Caption = "无序数列A(): "
Height = 675
Left = 120
TabIndex = 0
Top = 180
Width = 3435
End
End
Attribute VB_Name = "查找算法"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' 查找算法演示程序,编制:曹新国, 2004-3-14
' 最后修改于2006-4-5
Const N As Integer = 10
Dim A(1 To N) As Integer
Dim S(1 To N) As Integer
Dim St$
'用DO WHILE循环来进行查找
Private Sub cmdSX1_Click()
Dim P%, X%
X = Val(InputBox("输入要查找的数X:", "要查找的数输入框"))
P = 1
Do While X <> A(P) And P < N
P = P + 1
Loop
If X = A(P) Then
MsgBox "你要查找的数" & X & "在第" & P & "个位置"
Else
MsgBox "没找到你要查的数" & X
End If
End Sub
'用FOR循环来进行查找
Private Sub cmdSX2_Click()
Dim P%, X%
X = Val(InputBox("输入要查找的数X:", "要查找的数输入框"))
For P = 1 To N
If A(P) = X Then Exit For
Next
If P < N Then
MsgBox "你要查找的数" & X & "在第" & P & "个位置"
Else
MsgBox "没找到你要查的数" & X
End If
End Sub
Private Sub cmdZB_Click()
Dim P1 As Integer, P2 As Integer, P3 As Integer
Dim result As Boolean
X = InputBox("输入要查找的数X:", "输入框")
result = False '初始化逻辑变量
P1 = 1
P3 = N
P2 = (P1 + P3) / 2 '初始化指针
Do While (result = False And P2 <> P3) '构造循环
P2 = (P3 + P1) / 2 '初始化指针
If X = S(P2) Then '判断
result = True '找到
Else
If X > S(P2) Then '根据大小
P1 = P2 + 1 '确定下一步比较范围
Else
P3 = P2 - 1
End If
End If
Loop '下一步通过分析result的真值来区分是否找到
If result Then
MsgBox "你要查找的数" & X & "在第" & P2 & "个位置"
Else
MsgBox "没找到你要查的数" & X
End If
End Sub
Private Sub Form_Load()
'产生N个随机数,分别放入A(I)及S(I)
Randomize
For I = 1 To N
S(I) = Int(Rnd() * 100)
A(I) = S(I)
Next I
'输出这N个随机数
St = ""
For I = 1 To N - 1
St = St + Str(S(I)) + ","
Next I
St = St & S(N)
lblOrgNum = St
'对原始数据进行排序(从小到大,冒泡法)
For I = 1 To N - 1
For J = 1 To N - I
If S(J) > S(J + 1) Then
t = S(J)
S(J) = S(J + 1)
S(J + 1) = t
End If
Next J
Next I
'输出这N个排序后的数
St = ""
For I = 1 To N - 1
St = St + Str(S(I)) + ","
Next I
St = St & S(N)
lblSorted = St
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -