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:
1054
Rating: Antwort:
 Nein
Thema:
Bubblesort

... und mal zuende gefummelt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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