Zahlen sortieren Vb (Quicksort,Bubblesort)
Kann mir jemand einen Quicksort in mein Programm einfügen der sich in Programmieren auskennt. Bitte um Hilfe!
2 Antworten
Gleich der erste Treffer einer Google-Suche nach
visual basic quicksort codebeispiel
liefert ein Codebeispiel: https://msdn.microsoft.com/de-de/library/bb979305.aspx
Du müsstest die Sub QuickSort allerdings noch anpassen - die ist noch für VB6 geschrieben. Insbesondere müsstest du ändern:
Private Sub QuickSort(Of T As IComparable(Of T)( _
ByRef ArrayToSort As T(), _
....
und die übrigen Vorkommen von Variant durch T ersetzen, und die Vergleiche von Elementen vom Typ T :
a < b --> a.CompareTo(b) < 0
a > b --> a.CompareTo(b) > 0
a <= b --> a.CompareTo(b) <= 0
a >= b --> a.CompareTo(b) >= 0
Etwas allgemeiner ist (in der Argumentenliste)
ByRef ArrayToSort As IList(Of T)
und etwas leichter aufzurufen ist es, wenn man die Funktion auch mit nur dem Array als Argument definiert:
Private Sub QuickSort(Of T As IComparable(Of T)(ByRef ArrayToSort As IList(Of T))
QuickSort(ArrayToSort, 0, ArrayToSort.Length - 1)
End Sub
Bei einem Array gibt es - oft übersehen - die Sort-Methode:
Array.Sort(SortDatenFeld)
Viel Spaß!