Thema Datum  Von Nutzer Rating
Antwort
Rot Bubblesort
22.05.2013 12:39:39 Gast300591
NotSolved
22.05.2013 13:54:26 Gast90979
*****
NotSolved
22.05.2013 14:23:51 Gast90979
*****
Solved
22.05.2013 14:29:07 Gast90979
Solved

Ansicht des Beitrags:
Von:
Gast300591
Datum:
22.05.2013 12:39:39
Views:
1670
Rating: Antwort:
  Ja
Thema:
Bubblesort

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!!


 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Bubblesort
22.05.2013 12:39:39 Gast300591
NotSolved
22.05.2013 13:54:26 Gast90979
*****
NotSolved
22.05.2013 14:23:51 Gast90979
*****
Solved
22.05.2013 14:29:07 Gast90979
Solved