AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Index bei Like

Ein Thema von Dumpfbacke · begonnen am 8. Dez 2013 · letzter Beitrag vom 11. Dez 2013
Antwort Antwort
Seite 3 von 3     123   
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#21

AW: Index bei Like

  Alt 11. Dez 2013, 02:19
Vielleicht eine Hashmap und die einzelnen Buckets noch mal sortiert? Dadurch hat man eine bessere Worst-Case-Laufzeit als bei einer „normalen“ Hashmap.
... Bucketsort wird beim -on-the-fly- 'indizieren' verwendet, um kleinere Datenmengen zu sortieren und dadurch ein besseres Ergebnis zu erzielen. Eine Hashmap hat erst einmal keine Buckets, weil nicht klar ist, wie die Hashmap umgesetzt wurde (open hashing vs. separate chaining). Falls sie als separate chainging umgesetzt wurde, sind die einzelnen 'Buckets' bereits sortiert.
Meistens wird Separate Chaining verwendet. Und nein, da sind die Einträge normalerweise nicht sortiert, weil das bei einer verketteten Liste auch gar keinen Sinn ergeben würde: Auf einer verketteten Liste kann man keine binäre Suche durchführen. Neue Elemente werden einfach unsortiert am Anfang der Liste eingefügt.

Und von Bucketsort war überhaupt nicht die Rede...?
PS: Bei PHP wurde offenbar eine Hashmap mit fester Größe verwendet. Die Problematik kann durch eine dynamische Hashmap vermieden werden. Diese würde ihre Größe ggf. (zu viele Kollisionen) einfach verdoppeln. Da dadurch die Hashfunktion verändert wird, sollten die Angriffe ins Leere laufen.
Je nach Hashfunktion ist es durchaus möglich, dass die Elemente immer noch im selben Bucket landen, egal in welcher Größe die Hashmap (neu-)angelegt wird. Dass die Hashmap von PHP eine konstante Größe hat, kann ich mir ehrlich gesagt auch nicht vorstellen.

Geändert von Namenloser (11. Dez 2013 um 02:29 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#22

AW: Index bei Like

  Alt 11. Dez 2013, 08:16
Meistens wird Separate Chaining verwendet. Und nein, da sind die Einträge normalerweise nicht sortiert, weil das bei einer verketteten Liste auch gar keinen Sinn ergeben würde
Autschn. Self-Fail

Je nach Hashfunktion ist es durchaus möglich, dass die Elemente immer noch im selben Bucket landen, egal in welcher Größe die Hashmap (neu-)angelegt wird.
Na.. eher nicht:

Hashmap hat X Einträge (X=Prim). Hashfunktion = F(Key) Mod X.
Bei Vergrößerung auf Y Einträge (Y=Prim und ca. X*2) ist die Funktion F(Key) Mod Y.

Da dürften nicht die gleichen Kollisionen auftreten... Aber da bin ich kein Spezi.

Geändert von Furtbichler (11. Dez 2013 um 08:19 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 08:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz