Sortieralgorithmen in Visual Basic

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Beep!.

    Sortieralgorithmen in Visual Basic

    Hallo!

    Ich beschäftige mch seit Kurzem mit der Sortierung von Zahlen. Recht schnell habe ich mit auch bereits meinen eigenen Insertionsort-Algorithmus geschrieben:

    VB.NET-Quellcode

    1. Function Sort(ByVal Liste As List(Of Integer)) As List(Of Integer)
    2. Dim Ziel As List(Of Integer) = New List(Of Integer)
    3. Dim index As Integer
    4. For Each Wert In Liste
    5. index = 0
    6. For Each Zielwert In Ziel
    7. If Wert > Zielwert Then index += 1
    8. Next
    9. Ziel.Insert(index, Wert)
    10. Next
    11. Return Ziel
    12. End Function


    Meine Frage ist nun:

    Welche Sortieralgorithmen kann man in Visual Basic (2010 Express) umsetzen, d.h. als einigermaßen Fortgeschrittener ohne Hilfe selbst schreiben? Welche sind (in Visual Basic) schnell und arbeiten effizient? Kann ich meinen vielleicht noch verbessern?

    MfG Markus
    Das geht einfach mit einer Klasse, die von Klass Comparer (Of T) abgeleitet wird.
    Beispiel:

    VB.NET-Quellcode

    1. Private Sub Test()
    2. Dim myList As New List(Of Integer)
    3. Dim myIntegerComparer As New IntegerComparer
    4. Dim rdm As New Random
    5. Dim x As Integer
    6. For index As Integer = 0 To 50
    7. x = rdm.Next(0, 1000)
    8. myList.Add(x)
    9. Next
    10. Debug.WriteLine("")
    11. Debug.WriteLine(Now.ToString)
    12. Debug.WriteLine("======================================")
    13. For Each zahl As Integer In myList
    14. Debug.WriteLine("Unsortiert: " & zahl.ToString(""))
    15. Next
    16. myList.Sort(myIntegerComparer)
    17. Debug.WriteLine("======================================")
    18. For Each zahl As Integer In myList
    19. Debug.WriteLine("Sortiert: " & zahl.ToString(""))
    20. Next
    21. End Sub
    22. Private Class IntegerComparer
    23. Inherits Comparer(Of Integer)
    24. Public Overrides Function Compare(ByVal x As Integer, ByVal y As Integer) As Integer
    25. Return x.CompareTo(y)
    26. End Function
    27. End Class