Schrift
[thread]10693[/thread]

Verständis %HASH

Leser: 1


<< >> 9 Einträge, 1 Seite
SaschaTen
 2007-10-30 17:54
#101572 #101572
User since
2007-10-15
28 Artikel
BenutzerIn
[default_avatar]
Hallo Leute
Eine Frage die mich beschäftigt ist, "Wie ist der %HASH intern aufgebaut?".
Ist es ein einfaches assoziatives Array oder ist es ehr ein binärer Suchbaum?
Wenn es nur ein assoziatives Array ist, gibt es eine Möglichkeit einen binären Suchbaum aufzubauen wie man das aus c/c++ kennt.
Unter CPAN habe ich schon einen binären Suchbaum gefunden.

Danke... ist für das Verständiss und zur Optimierung der Laufzeiten.
-----------
Wer Rechstschreibfehler findet, darf diese behalten und bei Ebay versteigern!!!
-----------
Nidar mied där Rächtschraibunk!!!
moritz
 2007-10-30 18:26
#101574 #101574
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Ein Hash ist, wie der Name schon sagt, als Hash-Tabelle implementiert.

D.h. jeder key wird zu einem String konvertiert, und eine gewichtete Summe Modul $größe_des_hashs gebildet, und dieser Hash-Wert wird als Array-Index benutzt, um das Element zu finden.
Eine ausführlichere Erklärung findest du in der Wiki ;-)
betterworld
 2007-10-30 23:14
#101579 #101579
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Was genau ist denn ein "einfaches assoziatives Array"?
SaschaTen
 2007-10-31 09:20
#101581 #101581
User since
2007-10-15
28 Artikel
BenutzerIn
[default_avatar]
einfach bezieht sich darauf das es komplexere Datenstrukturen gibt z.B. Bäume oder Listen usw.

Ein normales Array kann man sich wie ne Tabelle vorstellen Index ist eine Zahl
Code: (dl )
1
2
3
Index|Wert1|Wert...|Wertn
0 | 0 | 1 | 2
1 | 3 | 4 | 5

in einem Assoziativen Array wird das ganze mit einem Index deiner Wahl gespeichert, entwerde ein Char/String oder eine Zahl
Code: (dl )
1
2
3
Index |Wert1|Wert...|Wertn
werte1| 0 | 1 | 2
werte2| 3 | 4 | 5

Wikipedia assoziative Array
-----------
Wer Rechstschreibfehler findet, darf diese behalten und bei Ebay versteigern!!!
-----------
Nidar mied där Rächtschraibunk!!!
pq
 2007-10-31 10:53
#101584 #101584
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
SaschaTen+2007-10-31 08:20:27--
einfach bezieht sich darauf das es komplexere Datenstrukturen gibt z.B. Bäume oder Listen usw.
[...]
Wikipedia assoziative Array

ein assoziatives array ist eine datenstruktur. aber es muss irgendwie implementiert werden.
von daher ist die frage "hash oder assoziatives array" recht sinnlos. ein assoziatives array
kann als hash implementiert sein.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2007-10-31 13:08
#101597 #101597
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
SaschaTen+2007-10-31 10:40:29--
pq+2007-10-31 09:53:51--
von daher ist die frage "hash oder assoziatives array" recht sinnlos.

Desshalb war das auch nicht meine Frage.

[/quote]
naja, du hast gefragt, wie ein perl-hash intern aufgebaut ist, und ob er als assoziatives array aufgebaut ist.
eine assoziatives array ist jedoch keine implementation, darauf habe ich geantwortet.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
SaschaTen
 2007-10-31 11:40
#101601 #101601
User since
2007-10-15
28 Artikel
BenutzerIn
[default_avatar]
pq+2007-10-31 09:53:51--
von daher ist die frage "hash oder assoziatives array" recht sinnlos.

Desshalb war das auch nicht meine Frage.
Wie sagte unser Elektrotechnik Prof so schön:
Prof. S
Das ist wie alles im Leben, eine Sache des Standpunktes
-----------
Wer Rechstschreibfehler findet, darf diese behalten und bei Ebay versteigern!!!
-----------
Nidar mied där Rächtschraibunk!!!
SaschaTen
 2007-10-31 14:06
#101605 #101605
User since
2007-10-15
28 Artikel
BenutzerIn
[default_avatar]
ok dann hatte ich dass fehl interpretiert
-----------
Wer Rechstschreibfehler findet, darf diese behalten und bei Ebay versteigern!!!
-----------
Nidar mied där Rächtschraibunk!!!
Taulmarill
 2007-10-31 14:46
#101608 #101608
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
back to topic :-)

Das alte "Advanced Perl Programming" bezeichnet in 20.3.3.1. "Inside HVs" die Hashingmethode die perl verwendet als "collision chaining".
Ich möchte jetzt hier nicht größere Abschnitte aus dem Buch posten, aber bei Wikipedia gibt es einen Artikel über Hashtabellen. Der Abschnitt "Seperate chaining" dort beschreibt das selbe Verfahren. =>http://en.wikipedia.org/wiki/Hash_table#Separate_chaining
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< >> 9 Einträge, 1 Seite



View all threads created 2007-10-30 17:54.