![]() |
Array sortieren und durchsuchen
Hallo,
Ich hab einen Array
Delphi-Quellcode:
(TNode ist ein Klasse.)
arContent : array of TNode;
Ich möchte diesen Array anhand eines Parameters
Delphi-Quellcode:
der Klasse TNode sortieren. Und auch dadurch schnell durchsuchen können.
dF: Double;
Konkret muss ich folgende Operationen ausführen: - Ich muss einen speziellen Eintrag finden für den ich F kenne. - Beim Einfügen muss ich ein Objekt (TNode) anhand eines f Wertes einsortieren. - Und ich muss überprüfen ob ein Objekt (TNode) sich bereits im Array befindet. Wie durchsucht man nun so einen Array?! Ich würde vermutlich in der Mitte anfangen und wenn der Wert zu groß ist in der Mitte der Unteren Hälfte anfangen. Und dass immer weiter wiederholen bis es nur noch 2 Elemente gibt. Und dann würde ich die Elemente einzeln durchlaufen. Soweit die Idee. Aber ich habe keine Vorstellung davon wie ich das umsetzten soll. Gruß roboter202 |
AW: Array sortieren und durchsuchen
Zitat:
Zitat:
Zitat:
|
AW: Array sortieren und durchsuchen
Na ja, die schnellste ist es nicht. Hashmaps sind noch schneller.
|
AW: Array sortieren und durchsuchen
[QUOTE=Delphi-Laie;1129246]
Zitat:
Also. Wie es scheint hast du verstanden was ich möchte. Ich hab nur keinen Plan wie ich die Schleife, die immer die hälfte halbiert aufbauen soll. Zum Sortieren. Ich werde die Elemente mit einer Funktion einreihen. dazu wollte ich auch hier erst nach dem f Wert suchen und dann den Eintrag dazwischen schieben. PROBLEM hat sich gerade GELÖST ![]() |
AW: Array sortieren und durchsuchen
Und ich wollte Dir gerade einen Lösungsweg mit einer m.E. etwas eleganteren while-Schleife aufzeigen.
Also, so ungefähr:
Delphi-Quellcode:
while untere_Grenze<obere_Grenze do
begin Mitte:=(obere_Grenze-untere_Grenze) div 2 if //hier die Prüfung des gesuchten Elemente(schlüssel)s mit dem Elemente(schlüssel) an der Position Mitte und davon abhänig: then obere_Grenze:=Mitte else untere_Grenze:=Mitte end |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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 by Thomas Breitkreuz