Sortieralgorithmen: InsertionSort

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Kurze Implementierung des InsertionSort-Algorithmus in VB

    Source Code

    1. Module Module1
    2. 'liste mit 15 Elementen, welches später sortiert werden soll deklarieren
    3. Dim list_to_be_sorted(15) As Integer
    4. 'Hilfsroutine um ein Integer-Array in der Konsole auszugeben
    5. Sub print_list(ByRef liste() As Integer)
    6. For Each element In liste
    7. Console.Write(element.ToString & " ")
    8. Next
    9. Console.WriteLine("-")
    10. End Sub
    11. 'Methode um ein liste mit Zufallswerten zu initialisieren
    12. Sub initialize_list(ByRef liste() As Integer)
    13. 'Zufallsgenerator initialisieren
    14. Dim r As New Random(System.DateTime.Now.Millisecond)
    15. 'Jedem Element der Schleife einen zufälligen Wert zuweisen
    16. For i As Integer = 0 To liste.Length - 1
    17. 'Zufallszahl zwischen 0 und 10.000 erzeugen und zuweisen
    18. liste(i) = r.Next(0, 10000)
    19. Next
    20. End Sub
    21. 'VB Implementierung des Insertionsort-Algorithmus wie er auf Wikipedia beschrieben ist: http://de.wikipedia.org/wiki/Insertionsort
    22. Sub insertionsort(ByRef liste() As Integer) '
    23. Dim val, j As Integer
    24. For i As Integer = 1 To liste.Length - 1
    25. val = liste(i)
    26. j = i
    27. While (j > 0 AndAlso liste(j - 1) > val)
    28. liste(j) = liste(j - 1)
    29. j = j - 1
    30. liste(j) = val
    31. End While
    32. Next
    33. End Sub
    34. Sub Main()
    35. initialize_list(list_to_be_sorted)
    36. print_list(list_to_be_sorted)
    37. insertionsort(liste_to_be_sorted)
    38. print_list(list_to_be_sorted)
    39. Console.ReadKey()
    40. End Sub
    41. End Module
    Display All


    Ich werde hier nicht auf die Spezifika des Algorithmus eingehen, da das sprachenunabhängig wäre und eher in die Rubrik Allgemein gehört. Es sei nochmal auf den Wikipedia-Artikel verwiesen, der eigentlich alles Nötige erklärt.

    8,021 times viewed