Linked List Eintrag schneller suchen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Linked List Eintrag schneller suchen

Beitrag von sen-me »

Gibt es eine Möglichkeit in einer Linked List einen Eintrag schneller zu suchen als sie immer von vorne durchlaufen zu lassen und mit dem Suchbegriff zu vergleichen?
Bild
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Wenn du ein Array hast, könnte man "quicksort" und "B-baum" anwenden. Da bei einer LinkedList aber keine Möglichkeit besteht, diese zu sortieren, geschweige denn, ein Item ganz präzise auszuwählen (z.B. "Gib mir Item 4". Das hat was mit der Technik zu tun, wie eine LinkedList funktioniert), hast du dann wohl ein Problem.

Einfach einen naderen Variablencontainer nehmen.

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

wie so oft: ohne Code kann man nur mutmaßen, was man noch optimieren
könnte.

eine Möglichkeit wäre es, die Schleife sofort zu verlassen, wenn der Eintrag
gefunden wurde (wird oft vergessen).

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Index Listen erzeugen
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Möglicherweise könnte man die LL von Zeit zu Zeit reorganisieren oder stattdessen Hashing verwenden.

Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Benutzeravatar
Hyper
Beiträge: 194
Registriert: 19.04.2005 19:14

Beitrag von Hyper »

Hallo sen-me,

ich erstelle mir für schnelle Zugriffe auf große Listen parallel ein Array und speichere in Array-Element X den Pointer zum Listenelement X ab. Da kannst Du über den Array-Schlüssel und ChangeElement() schnell zugreifen :-)
PB 5.72
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Hallo Hyper,

ich denke das meinte mk-soft mit seiner Indexliste.

Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Dann geht doch aber der Vorteil einer LL floeten, und man
kann auch gleich ein Array benutzen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

es kommt sowieso drauf an, was man machen will.
viele nutzen auch LLs für problemstellungen, wo ein array angebrachter wäre.
auch für'n array ist schnell ne schleife geschrieben, die elemente aufrückt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

Nehmen wir mal an, es gelte eine wirklich große Liste zu durchsuchen, wobei über den Nachnamen zuzugreifen wäre.

Eine solche Liste hält man dann gut sortiert und speichert sie auch sortiert ab. Legt man sich nun noch ein Array mit den Startindizes der Anfangsbuchstaben an, kann man so den Zugriff dramatisch beschleunigen. Bei einem Buchstaben sind das dann 26, bei zweien 676 Indizes, die in einem Array abgelegt werden müssen. Lässt man Sonderzeichen und Zahlen in Namen zu, entsprechend mehr.
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Antworten