Schrift
[thread]6431[/thread]

Arrays und Hashs (Seite 2)



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
esskar
 2004-07-27 04:41
#84934 #84934
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
es wäre wohl auch performance-technisch wohl untragbar, wenn die Reihenfolge sich - ohne das sicher der hash ändert - einfach so mal ändert; rein vom Gefühl her; ich meine selbst perl kocht nur mit den allbekannten datenstrukturen
Ishka
 2004-07-27 05:23
#84935 #84935
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ist nicht gesagt. Bei einigen Algorithmen ist immerhin ein kleines Zufallselement geschwindigkeitssteigernd. Abgesehen davon kann es noch optimierungen im Hintergrund geben, die manchmal die Reihenfolge zwischendurch über den Haufen werfen.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
esskar
 2004-07-27 11:37
#84936 #84936
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Ishka,27.07.2004, 03:23]Ist nicht gesagt. Bei einigen Algorithmen ist immerhin ein kleines Zufallselement geschwindigkeitssteigernd. Abgesehen davon kann es noch optimierungen im Hintergrund geben, die manchmal die Reihenfolge zwischendurch über den Haufen werfen.[/quote]
was heißt hintergrund bei einem seqeunziellen system?
und "Zufallselemente" kenn ich eigentlich nur beim sortieren...
wenn man aber zufällig daten in eine struktur einpflegt, dann hat man doch später das problem, die daten wieder zu finden, oder nicht?
Ishka
 2004-07-27 15:08
#84937 #84937
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wenn du nen Binärbaum statt nem Hash implementierst, dann ist es geschickt bei jedem Auslesen mit etwa 10% Chance ein bischen umzusortieren, damit der Baum besser ausbalanciert ist. Das reduziert die Dauer des Schreibvorgangs erheblich, da du dich da nicht ums sortieren kümmern mußt und zugleich wird der Zugriff genau dann optimiert, wenn du oft liest.

Ist sowohl ein Beispiel für Zufall, wie auch für Hintergrundsoptimierung.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
esskar
 2004-07-27 15:27
#84938 #84938
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Ishka,27.07.2004, 13:08]dann ist es geschickt bei jedem Auslesen mit etwa 10% Chance ein bischen umzusortieren, damit der Baum besser ausbalanciert ist.[/quote]
das kann echt sein;
jedoch sollte (so kenn ich die Idee) der Baum doch beim schreiben sortiert werden, da mit beim den restlichen Operationen, ide Laufzeit gewährleistet ist...
Naja, aber eigentlich kommt es immer darauf an, was man tun will;
danke, ist ne tolle idee
Ishka
 2004-07-27 15:29
#84939 #84939
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=esskar,27.07.2004, 13:27][...]
danke, ist ne tolle idee[/quote]
Ist schließlich auch nicht meine Idee ;)

btw: Wärst du zum Perl-Treffen nach München gekommen, hättest du es da schon gehört :p
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2004-07-26 10:48.