AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 05:47

Parameter dieser Suchanfrage:

Suche in Thema: Hashtable, wie benutzen?
Suche alle Beiträge, die von "isilive" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 8 von insges. 8 Treffern
Suche benötigte 0.004s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Algorithmen, Datenstrukturen und Klassendesign

    AW: Hashtable, wie benutzen?

     
      by isilive, 25. Apr 2012
    Wie auch immer, auf jedenfall konnte ich schon erfolgreich die orginale csDictionary verwenden. Ich hab mit grossen Zahlen gerechnet - mpArith von Wolfgang Ehrhardt. Das BigNumberErgebnis wollte ich zusammen mit einem Integer in eine Hashtable schreiben.
    Wenn man die bigNumber als String ausgibt kann man sie problemlos im Stringdictionary verwenden. Es ist praktisch, dass man Strings...
  • Forum: Algorithmen, Datenstrukturen und Klassendesign

    AW: Hashtable, wie benutzen?

     
      by isilive, 25. Apr 2012
    Die geht (mit deiner Version von csDictionary, das ich csDictionaryh getauft habe um Verwechslungen zu vermeiden).

    Es liegt an "RANDOMRANGE" mit high(Int64). Bei "MyRandom" oder einer Randomrange:=high(Integer) funktioniert es problemlos.

    Rufe ich allerdings Dict.add (Testhash.add) mit random(high(Int64)) als key auf, dann kommt irgendwann die Exception. Tracen ist ein bisschen schwierig,...
  • Forum: Algorithmen, Datenstrukturen und Klassendesign

    AW: Hashtable, wie benutzen?

     
      by isilive, 24. Apr 2012
    Um nochmal auf die Hauptroutine von Horst zurückzukommen (warum seine dictionary.pas bei mir knallt ist momentan nicht so wichtig. Die orginale funzt ja tadellos.)


    j := low(A64);
    For i := low(A64) to High(A64) do
    begin
    Wert := random(RANDOMRANGE);
    IF TestHash.Add(Wert,Pointer(j)) then
    begin
    A64 := Wert;
  • Forum: Algorithmen, Datenstrukturen und Klassendesign

    AW: Hashtable, wie benutzen?

     
      by isilive, 24. Apr 2012
    Es ist eine Zugriffsverletzung "Lesen von Adresse 00000001" und bezieht sich nur auf die abgewandelte .pas Datei von Horst, der sie ja primär auf Freepascal geschrieben hat. Der Fehler tritt unregelmässig und nur bei 500-2000 Schleifendurchläufen auf, was darauf hindeutet, dass es dann knallt wenns eine Kollision in der Hashtable gibt. (Aber um das genau zu wissen versteh ich das ganze Konstrukt...
  • Forum: Algorithmen, Datenstrukturen und Klassendesign

    AW: Hashtable, wie benutzen?

     
      by isilive, 24. Apr 2012
    Danke, habs jetzt unter Delphi 2009, Win7 zum laufen gebracht. Allerdings knallt es regelmässig nach ca. 500 bis 2000 Schleifendurchläufen und zwar beim
    Hash.Add:

    -> Zeile 535 der DictionaryUnit
    With PIntHashEntry(Result)^ Do
    If heKey = aKey Then <-- hier knallts
    Exit
    Wohl bei der ersten Kollision?! Warum versteh ich noch nicht ganz...

    Verstehe ich deinen...
  • Forum: Algorithmen, Datenstrukturen und Klassendesign

    AW: Hashtable, wie benutzen?

     
      by isilive, 1. Apr 2012
    Ok, soweit war es mir schon klar, aber:
    - Der Pointer kriegt einfach immer NIL übergeben?
    - Brauch ich das Array "Samples" auch, oder übernimmt das Dictionary beide Datenfelder?

    Nehmen wir mal ich habe
    einen fortlaufenden Integer 0..5Millionen
    jeweils eine zugehörige Zufallszahl vom Typ INT64
    und die INT64 möchte ich auf Gleichheit/Kollision überprüfen und dann den zugehörigen Integer...
  • Forum: Algorithmen, Datenstrukturen und Klassendesign

    AW: Hashtable, wie benutzen?

     
      by isilive, 30. Mär 2012
    Danke für eure Antworten!

    Mein Array hat 25 Mio. Einträge und obwohl die lineare suche bei < 1 Mio Einträge noch ganz ok ist wenn man sie flott programmiert, wird es bei mehreren Mio. Einträgen eine Katastrophe.

    for i:=0 to arraysize do // arraysize=25 Mio.
    array1:=int64_x; //irgendeine zahl, zB: Zufallszahl
    for j:=0 to i-1 do
    if int64_x = array1 then
    found:=true;
  • Forum: Algorithmen, Datenstrukturen und Klassendesign

    Hashtable, wie benutzen?

     
      by isilive, 28. Mär 2012
    Hallo Leute,

    ich habe ein sehr grosses Array mit mehreren Millionen Einträgen vom Typ INT64.
    Nun möchte ich diese Zahlen schnell auffinden können bzw. nachschauen, ob sie schon im Array existiert.
    Ich denke dazu würde sich wohl eine Hashtable anbieten und ich hab diese hier gefunden.
    Blöde Frage: Wie benutz ich die Hashtable?
    Als TIntegerDictionary erwartet sie von mir bei Add(Key, Data)...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=isilive&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=167408
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 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