Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1540to1544
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bubblesort über Funktion

Bubblesort über Funktion
21.02.2017 07:56:28
Simon
Guten Morgen liebe Mitleidende in der Excelhölle,
ich benötige einen Rat von euch. Ich komme einfach nicht drauf wieso mein Code nicht funktioniert. Ich habe ein Array mit 250 Elementen in der ersten Dimension und 4 in der zweiten Dimension, also:
Dim arrAnl(249, 3) As Long
Das Array wurde davor mit Werten aus einer Tabelle gefüllt. arrAnl(x,0) enthält eine 6-stellige Nummer und arrAnl(x,1-3) enthalten Zahlen von 0 - ca. 8. Sortiert werden soll der zweite Eintrag. Das Array ist bis arrAnl(193,0) gefüllt. Der Rest des Arrays dient als Puffer für zukünftige Werte.
über Call bubblesortK(arrAnl) rufe ich den Sortieralgorithmus auf.

Private Sub bubblesortK(ByRef arrbubbK() As Long)
Dim n As Integer
Dim i As Integer
Dim temp0 As Long
Dim temp1 As Long
Dim temp2 As Long
Dim temp3 As Long
For n = 249 To n > 1 Step -1
For i = 0 To i  arrbubbK(i + 1, 1) Then 'Swap
temp0 = arrbubbK(i, 0)
temp1 = arrbubbK(i, 1)
temp2 = arrbubbK(i, 2)
temp3 = arrbubbK(i, 3)
arrbubbK(i, 0) = arrbubbK(i + 1, 0)
arrbubbK(i, 1) = arrbubbK(i + 1, 1)
arrbubbK(i, 2) = arrbubbK(i + 1, 2)
arrbubbK(i, 3) = arrbubbK(i + 1, 3)
arrbubbK(i + 1, 0) = temp0
arrbubbK(i + 1, 1) = temp1
arrbubbK(i + 1, 2) = temp2
arrbubbK(i + 1, 3) = temp3
End If
Next i
Next n
End Sub

Hat jemand einen Rat für mich was ich falsch mache?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Funktioniert nicht?
21.02.2017 08:07:54
Max2
Hallo,
gib uns doch am besten eine Beispiel Mappe, die Aussage "Funktioniert nicht"
ist etwas vage.
Macht der Sub einfach gar nichts?
Gibt er einen Fehler zurück?
Wie verwendest du das Array anschließend?
Hast du dir schon Schrittweise mit dem Debugger den Code angeschaut ?
Lass dir doch mal mit Debug.Print nach jedem Schritt den Wert deines Arrays ausgeben
AW: Funktioniert nicht?
21.02.2017 10:04:39
Der
Hallo,
mir fällt auf anhieb folgendes auf:
For n = 249 To n > 1 Step -1
sollte wohl so heißen:

For n = 249 To 1 Step -1

im Prinzip das gleiche bei:

For i = 0 To i 
sollte wohl so heißen:

For i = 0 To n - 1 Step 1
Du solltest aber genauer beschreiben, was nicht funktioniert. Wo tritt der Fehler auf, unterbricht der Code? Wenn ja, in welcher Zeile? Gibt es eine Fehlermeldung? Etc. etc.
Manchmal hilft auch eine Beispieltabelle, dann kann man das Problem selbst nachvollziehen. Damit machst du es einfacher, Dir zu helfen.
Gruß
Steuerfuzzi
Anzeige
Sorry, sollte eig. eine Antw. auf den OP sein!(kT)
21.02.2017 10:07:23
Der
kT
AW: Funktioniert nicht?
21.02.2017 10:06:12
PeterK
Hallo
Dein Bubble-Sort ist nicht korrekt, da Du die Schleife nur einmal durchläufst. Deine äußere For-Schleife muss noch durch einen weitere Schleife gekapselt werden.

dim swap as boolean
do
swap = false
for ....
if ....
swap = true
end if
next
loop until not swap

AW: Funktioniert nicht?
21.02.2017 10:17:56
Simon
Hallo Max,
das mit der Beispielmappe gestaltet sich als etwas schwierig. Mein Problem war, dass der Sub einfach nichts gemacht hat, also keine Sortierung vorgenommen hat. Bei den Schleifen hat irgendwas nicht geklappt. Hab das auch schon mit dem Debugger durchlaufen und kann mir nicht erklären wieso es nicht funktioniert.
Ich habe jetzt den Bubblesort mit euren Tipps nochmals neu programmiert und mit dem Debugger durchlaufen und jetzt funktioniert er.
Mein Problem hat sich gelöst, Danke für eure Mühen.
Grüße,
Simon
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige