vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Sortieren eines strukturierten Arrays 
Autor: Jin_und
Datum: 21.09.03 14:53

Hi Leute!
Vielleicht kann mir ja jemand bei meinem Problem helfen.
Ich habe ein Array das auf einem benutzerdefinierem Datentyp/einer Struktur basiert.
Beispiel der Struktur und des Arrays:
Structure PrototypeDaten
	Public Counter As Integer
	Public Traffic As Long
	Public StartTime As Date
	Public StopTime As Date
	Public Name As String
End Structure
 
Public DatenArray(100) As PrototypeDaten
Nun möchte ich dieses Array sortieren und zwar abhängig von der Auswahl des Anwenders nach einen Element der oben gezeigten Struktur.

Das Sortieren selbst macht mir keine Probleme. Aber ich suche nach einem Weg das Ganze zu vereinfachen.
Zur Zeit habe ich für jeden Fall eine Sub, in der ich nach dem gewünschten Element sortieren.
Beispiel der Sortierung für das Element "Name":
Sub QuickSort_Name(ByVal StartIndex As Integer, ByVal EndeIndex As Integer)
' Startwerte für Sortierung des Bereichs festlegen
Dim i              As Integer = StartIndex
Dim j              As Integer = EndeIndex
Dim VergleichsWert As String  = DatenArray((StartIndex + EndeIndex) \ 2).Name
 
	' Schleife bis ZählerStart und ZählerEnde sich in der Mitte treffen
	Do While i <= j
		' nach dem größten Wert in der linken Hälfte des Bereichs suchen
		Do While DatenArray(i).Name < Vergleichswert
			i += 1
		Loop
		' nach dem kleinsten Wert in der rechten Hälte des Bereichs suchen
		Do While DatenArray(j).Name > Vergleichswert
			j -= 1
		Loop
		' ist i kleiner gleich j? (Links ist ein größerer Wert als Rechts)
		If i <= j Then
			' ja, also Datenfelder austauschen
			Swap(i, j)
			i += 1
			j -= 1
		End If
	Loop
 
	' ist der Beginn des Bereiches noch kleiner als j?
	If StartIndex < j Then
		' ja, also QSort mit neuem Bereich aufrufen (linke Hälfte)
		QuickSort_Name(StartIndex, j)
	End If
	' ist das Ende des Bereiches noch größer als i?
	If i < EndeIndex Then
		' ja, also QSort mit neuem Bereich aufrufen (rechte Hälfte)
		QuickSort_Name(i, EndeIndex)
	End If
End Sub ' QuickSort_Name
Gibt es einen Weg, das Ganze in einen Algorythmus zu packen, ohne das ich viel mit If-Abfragen oder Select Case-Fallentscheidungen hantieren muß?

Gruß
Jin_und
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Sortieren eines strukturierten Arrays976Jin_und21.09.03 14:53
Re: Sortieren eines strukturierten Arrays928ModeratorDaveS22.09.03 09:12
Re: Sortieren eines strukturierten Arrays599Jin_und22.09.03 13:59

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel