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

Ansicht des Beitrags:
Von:
Gast90979
Datum:
22.05.2013 14:23:51
Views:
923
Rating: Antwort:
 Nein
Thema:
Bubblesort

... und mal zuende gefummelt.

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub BubbleSort_Demo()
  
  Dim a() As Variant
  
  With Tabelle1.Range("A1:A10")
    
    .Formula = "=RANDBETWEEN(0,100)"
    
    .Copy
    .PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    
    'Werte in Array einlesen
    a = .Value()
    
    Call BubbleSort(a, .Cells)
    
    Erase a 'aufräumen
    
  End With
  
  Call MsgBox("Fertig", vbInformation)
  
End Sub

Private Sub BubbleSort(Arg() As Variant, Output As Excel.Range)
  
  Dim i As Long
  Dim j As Long
  Dim t As Variant
  
  Output.Worksheet.Activate
  
  For i = UBound(Arg) - LBound(Arg) To LBound(Arg) Step -1
    For j = LBound(Arg) To i
      
      If Arg(j, 1) > Arg(j + 1, 1) Then
        
        t = Arg(j, 1)
        Arg(j, 1) = Arg(j + 1, 1)
        Arg(j + 1, 1) = t
        
        Output.Cells(j).Select
        
        Call Sleep(1000) '1 Sekunde warten
      End If
      
      'Array zurück schreiben
      Output.Value() = Arg
      
    Next j
  Next i
  
End Sub

Sollte mit der gelinkten Seite auch gut nachvollziehbar sein.

 

Gruß


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
22.05.2013 12:39:39 Gast300591
NotSolved
22.05.2013 13:54:26 Gast90979
*****
NotSolved
Rot Bubblesort
22.05.2013 14:23:51 Gast90979
*****
Solved
22.05.2013 14:29:07 Gast90979
Solved