※ 引述《felici (下一次會更好)》之銘言:
: 我寫了一個查看輸入資料是否在先前輸入的資料內
: 但是他是一個一個從頭開始去檢查
: 如果我要改成對半去檢查,要怎麼改
: 可否給一個方向呢?
: 我是初學者所以所學不多><"
: 打擾了...
1.資料一定要先排序
2.先取資料陣列上限的中間值,例如4個,就取2
3.然後搜尋植跟比較陣列中元素2,比元素2,比大,就取最大值上限跟中間值的中間
,否之取最小直跟中間的中間。
4.一直比較到找到為止,或是上限等於下限
: --------------------------------------------------------------------------
: Private Sub Command5_Click()
: Dim X(3) As Integer
: MsgBox "請由小到大輸入4個數字"
: For i = 0 To 3
: X(i) = Val(InputBox("請輸入第" & i + 1 & "個數字"))
: Print "你輸入的第" & i + 1 & "個數字" & X(i)
: Next i
: Do
: n = InputBox("請輸入任何數字,查看是否在資料裡。輸入quit代表結束")
: If n = "quit" Then Stop
: p = 1
: For j = LBound(X) To UBound(X)
: If n = X(j) Then Print "你輸入的數字" & n & "在第" & j + 1 & "份資料裡": p = 2
: Next j
: If p = 1 Then Print "你輸入的數字" & n & "不在資料裡"
: Loop
: End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.225.130.61