Hallo Leute
Ich versuche eine funktionierende Zeichensortierung (Sortierung nach Alphabet) in eine Wortsortierung umzuwandeln, doch dies klappte bisher nicht.
Der String "*braun*orange*gelb*violet*schwarz" möchte ich zu "*braun*gelb*orange*schwarz*violet" sortieren.
Ich bin mir nicht sicher aber ich denke das Problem liegt am nach der inneren For-Schleife. Habe es schon beliebig verändert aber keine Lösung gefunden.
Oder was könnte das Problem sein ?
Danke für eure Hilfe
Zeichensortierung: funktioniert
Ergebnis: *****aaabbceeegghillnnoorrrstuvwz
Wortsortierung: Funktioniert nicht
Ergebnis: *gelb*braun*orange*violet*schwarz
Ich versuche eine funktionierende Zeichensortierung (Sortierung nach Alphabet) in eine Wortsortierung umzuwandeln, doch dies klappte bisher nicht.
Der String "*braun*orange*gelb*violet*schwarz" möchte ich zu "*braun*gelb*orange*schwarz*violet" sortieren.
Ich bin mir nicht sicher aber ich denke das Problem liegt am nach der inneren For-Schleife. Habe es schon beliebig verändert aber keine Lösung gefunden.
Oder was könnte das Problem sein ?
Danke für eure Hilfe
Zeichensortierung: funktioniert
VB.NET-Quellcode
- Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
- Dim a, b, min As Long
- Dim t As Char
- Dim strUnsort As String = "*braun*orange*gelb*violet*schwarz"
- For a = 1 To Len(strUnsort)
- min = a
- For b = a + 1 To Len(strUnsort)
- If Mid(strUnsort, b, 1) < Mid(strUnsort, min, 1) Then
- min = b
- End If
- Next
- t = Mid(strUnsort, a, 1)
- Mid(strUnsort, a, 1) = Mid(strUnsort, min, 1)
- Mid(strUnsort, min, 1) = t
- Next
- MsgBox(strUnsort)
- End Sub
Ergebnis: *****aaabbceeegghillnnoorrrstuvwz
Wortsortierung: Funktioniert nicht
VB.NET-Quellcode
- Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
- Dim a, b, min As Long
- Dim strUnsort As String = "*braun*orange*gelb*violet*schwarz"
- Dim wortarray() As String
- wortarray = Split(strUnsort, "*")
- Dim t As String
- For a = 1 To UBound(wortarray) - 1
- min = a
- For b = a + 1 To UBound(wortarray) - 1
- If wortarray(b) < wortarray(b + 1) Then
- min = b
- End If
- Next
- t = wortarray(a)
- wortarray(a) = wortarray(min)
- wortarray(min) = t
- Next
- strUnsort = Join(wortarray, "*")
- MsgBox(strUnsort)
- End Sub
Ergebnis: *gelb*braun*orange*violet*schwarz