![]() |
suche - such Algo
Hi,
ich habe mehrere einträge wechle ich durchsuchen müchte das "problem" ich möchte nach stringwerten suchen und nicht nach dem index welcher such algo suche würde sich dazu am besten eignen; sequentielle suche ausgeschlossen ;) DANKE ! |
Was willst du durchsuchen? Eine Ini Datei, eine Datenbank?
|
Außerdem interessant, ob die Einträge in irgendeiner Weise geordnet sind! Wenn Du schreibst, dass Du nach einem String suchst, wäre es z.B. interessant zu wissen, ob die Einträge anhand dieses Attributs vielleicht alphabetisch sortiert wurden.
|
ein dynamisches string - array
|
ah, hab die 2 frage leider zu spät gesehen
die einzelnen datensäze besitzen einen index, nachdem sind sie sortiert |
Dann geh mit einer For schleife die ganzen indexes durch.
|
Was anderes fällt mir auch nicht ein. Wenn Du immer ausschliesslich nach Stringwerten in einem Attribut suchen willst, dann solltest Du Dir überlegen, ob Du die Datensätze nicht nach diesem Attribut sortierst und neue Datensätze direkt an der richtigen Stelle einsortierst!
|
wie machen das denn die "grossen" datenbanken ?
die durchlaufen doch auch nicht alle einträge oder doch ? |
Hallo Snoop007,
die großen Datenbanken legen Indizes an, die eine schnelle Suche unterstützen. Der Index zeigt direkt die Stelle an, an der der Datensatz steht, so dass die Anwendung (das DBMS) direkt darauf zugreifen kann. |
hmm,
genau so isses, dadurch werden die Indices oft grösser als die DB an sich gross ist ! Aber Time rulez.
|
das mit dem index setzen ok, aber wie setzen die datenbaken dann aus den indezes die daten wieder zusammen ?
|
hmm,
ist eigentlich relativ einfach, der Index wird ja herbeigeführt,sagen wir mal alle begriffe mit mehr als 4 Buchstaben, dann wird dann die DB durchsucht und die entsprechenden Werte eingebaut. Das kostet eben nur einmal Zeit und viel Speicher, aber wennn man eine DB aht die sich nur unwesendlich ändert dafür aber oft durchsucht wird ist es genial !
|
Hai Snoop007,
sind die Daten in deinem Array denn sortiert? Wenn nicht wäre es sicher eine Überlegung wert das Array vor dem suchen zu sortieren. |
die daten sind nach dem index sortiert aber sonst nicht
die strucktur ähnelt einer adress DB index, vorname, nachname ... @JoelH, danke für deine erklärung, aber den sinn versteh ich dennoch nicht sagen wir mal ich habe folgende datensätze 1 hans dieter 2 peter meiner 3 ullrich wiegandt 4 harald stein wie könnte man die indezes setzen, damit ich recht leicht nach vornamen suchen kann ? |
Hallo snoop007,
da gibt es ganz ausgetüfftelte Strukturen und Suchalgorithmen. Es könnte z.B. so sein, dass sagen wir mal alle Namen die mit H beginnen in einem Binärbaum sortiert sind. Dann hangelt sich ein Algorithmus entlang der Zweige, bis er den Namen "hans dieter" gefunden hat. Dort findet er die Information, dass dieser Datensatz an der Stelle 176567 in der Tabelle steht, liest den Datensatz von dieser Stelle und das Ganze blitzschnell. Wie gesagt die Theorie um Sortieralgorithmen ist sehr umfangreich und es ist auch eine gewisse Kunst eines DBMS die geschicktesten Sortieralgorithmen anzuwenden, um von einem Schlüssel den zugehörigen Datensatz schnell zu finden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 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