Ich erzeuge 65000 Zeilen mit Zahlen in aufsteigender Reihenfolge:
Code:
Sub ERZEUGE65000()
Dim x As Long
Dim i As Long
Randomize
x = Int(10 * Rnd)
For i = 1 To 65000
Cells(i, 1) = x
x = x + 1 + Int(10 + Rnd)
Next
End Sub
und daraus möchte ich per Binärer Suche eine Zahl finden.
Code:
Function fxSucheBin(x, anfang, ende)
Dim SucheErfolgreich As Boolean
Dim mitte As Integer
SucheErfolgreich = False
While ((SucheErfolgreich = False) & (anfang <= ende))
mitte = anfang + ((ende - anfang) / 2)
If (Cells(1, mitte)) = x Then
SucheErfolgreich = True
fxSucheBin = mitte
Else
If (Cells(1, mitte) < x) Then
fxSucheBin = fxSucheBin(x, 1, (mitte - 1))
Else
fxSucheBin = fxSucheBin(x, (mitte + 1), 65000)
End If
fxSucheBin = 0
End If
Wend
End Function
nur tritt leider ein Fehler auf und ich hab keine Ahnung warum.
Also kann mir bitte jemand helfen?
Danke
mfg
Chris |