Hallo Leute!!!
Ich bin echt verzweifelt bezüglich einer Aufgabenstellung:
Verwenden Sie den Bublesort-Algorithmus
Erstellen sie in Spalte A 10 zufällige Zahlen (0-100)
Lesen Sie die Werte in ein Datenfeld
Sortieren sie die Zahlen mit dem Algorithmus:??wobei nach jedem Sortierschritt
- Der Algorithmus 1s wartet
- Das Datenfeld in das Excel (Spalte A) kopiert wird
Kennt sich da irgendjemand aus? Mein Vorschlag wäre:
Sub Datenfelder()
Randomize
Dim i As Integer
For i = 0 To 100
Sheets("Tabelle1").Range("A1:A10") = i
Next i
End Sub
Function SortArray(data) As Variant
Dim idx As Integer
Dim lval As Integer
Dim rval As Integer
Dim exchanged As Boolean
Do exchanged = False
Debug.Print "starting at begin of data"
For idx = LBound(data) To (UBound(data) - 1)
lval = data(idx)
rval = data(idx + 1)
Debug.Print "checking idx " & idx & ": " & lval & ", " & rval
If lval > rval Then
data(idx) = rval
data(idx + 1) = lval
exchanged = True
Debug.Print "EXHANGE: idx " & idx & ": " & lval & ", " & rval; ""
End If
Application.Wait (Now + TimeValue("0:00:01"))
MsgBox ("Execution resumed after 1 Second")
Next idx
Loop While exchanged
SortArray = data
End Function
Function IsEqualArray(lval, rval) As Boolean
Dim lvalLBound As Integer
Dim lvalUBound As Integer
Dim rvalLBound As Integer
Dim rvalUBound As Integer
Dim idx As Integer
lvalLBound = LBound(lval)
lvalUBound = UBound(lval)
rvalLBound = LBound(rval)
rvalUBound = UBound(rval)
If (lvalLBound = rvalLBound And lvalUBound = rvalUBound) Then
IsEqualArray = True
For idx = lvalLBound To lvalUBound
If (Not lval(idx) = rval(idx)) Then
Debug.Print "Difference at position (" & idx & "): " & lval(idx) & ", " & rval(idx)
IsEqualArray = False
End If
Next idx
Else: IsEqualArray = False
Debug.Print "The arrays have different bounds: (" & lvalLBound & "-" & lvalUBound & ") (" & rvalLBound & "-" & rvalUBound & ")"
End If
End Function
Danke!!
|