AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Quicksort eines Datensatzes nach alphabet
Thema durchsuchen
Ansicht
Themen-Optionen

Quicksort eines Datensatzes nach alphabet

Ein Thema von Sai · begonnen am 24. Jan 2008 · letzter Beitrag vom 26. Jan 2008
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Re: Quicksort eines Datensatzes nach alphabet

  Alt 25. Jan 2008, 08:00
Eigentlich steht doch da Alles
Im auskommentierten MinSort wird das Record-Feld 'schl' verglichen:
 IF hilfsdaten[l].schl < hilfsdaten[kleinstes].schl THEN Im Quicksort dagegen der Record (was nicht funktioniert)
WHILE hilfsdaten[i] < x DO Also ersetzt Du das durch
WHILE hilfsdaten[i].schl < x.schl DO Fertig.

Es wäre allerdings eine gute Idee, eine Funktion 'RecordVergleich' zu schreiben, die das Ergebnis des Vergleiches zurückliefert, so in etwa:

Delphi-Quellcode:
Function RecordVergleich (a, b : TRecord) : Integer; // oder TVergleichsErgebnis = (veKleiner, veGleich, veGrößer)
Begin
       if a.Feld1 < b.Feld1 Then RecordVergleich := -1 // veKleiner
  else if a.Feld1 > b.Feld1 Then RecordVergleich := +1 // veGroeßer
  else if a.Feld2 < b.Feld2 Then RecordVergleich := -1 // veKleiner
  else if a.Feld2 > b.Feld2 Then RecordVergleich := +1 // veGroeßer
  else if a.Feld3 < b.Feld3 Then RecordVergleich := -1 // veKleiner
  else if a.Feld3 > b.Feld3 Then RecordVergleich := +1 // veGroeßer
...
  else RecordVergleich := 0
End;
Diese Funktion vergleicht zwei Records zuerst nach Feld1. Wenn die Records hier identisch sind, dann nach Feld2 und wenn sie da auch identisch sind, nach Feld3. Wenn sie da auch identisch sind, dann definieren wir die beiden Records als gleich (auch wenn in anderen Feldern unterschiedliche Werte stehen).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz