Schrift
[thread]6766[/thread]

schwarz'scher filter?: entferne dups aus array (Seite 2)



<< |< 1 2 >| >> 19 Einträge, 2 Seiten
lichtkind
 2005-03-08 00:33
#52399 #52399
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
aber betterworlds erste methode scheint ein brauchbarer schneller test zu sein ob es notwendig ist zu sortieren
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
kabel
 2005-03-08 07:39
#52400 #52400
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
wie dann? wo ist in betterworlds code ein maß für die unordnung eines arrays?
@betterworld: seit perl 5.7 ist das perl sort mittels eines stabilen mergesort implementiert.
-- stefan
lichtkind
 2005-03-08 12:18
#52401 #52401
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
naja: wenn ich den array zu einem hash caste und unless(keys(%hash) == @array) {crop dups;}
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
lichtkind
 2005-03-09 03:20
#52402 #52402
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
betterworld:
bitte sag warum dir dein post vom 07.03.2005, 22:07 nicht gefällt
ich werde es als grundlage meiner lösung nehmen, in der version funzt es nicht weil es immer noch sortiert aber
ich werde noch ein sort davor hängen und den array 3 stellig machen und dann wird es passen die lösung werd ich posten\n\n

<!--EDIT|lichtkind|1110331278-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
lichtkind
 2005-03-09 03:37
#52403 #52403
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use warnings;
use strict;

my @array = (23,1,2,3,4,2,3,5,8);
my $cc;
my @uniq = map { $_->[0] }
          sort { $a->[1] <=> $b->[1]}
          grep {! $_->[2]}
          sort { my $v = $a->[0] cmp $b->[0];
               
  $a->[2] = 1 unless $v or $b->[2];
               
  $v}
           map {[$_,$cc++]} @array;

print "$_," for @uniq;

das isser, optimierungsbedürftig aber er tut funzen

kann man in diesem fall auch aus was ähnliches wie $. nur halt in dem map zurückgreifen?

ein einfacher benchmark zeigte auf meinem mittel altem system (1300Duron mit viel ram) das bei einer arraylänge von 30 und 20 wiederholungen inclusive service routinen zur bereitstellung des inhalts des array aus internen quellen es erst in den messbaren bereich kommt(0.01 sec). klingt nach schnell genug™\n\n

<!--EDIT|lichtkind|1110333305-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
pq
 2005-03-09 13:07
#52404 #52404
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
lichtkind: ich verstehe nicht, was du mit deinem komplizierten algorithmus
willst.
was ist an:
 my $seen;
 my @uniq = grep {!$seen->{$_}++} @array;

denn so unschön? ist schnell(*) und die reihenfolge bleibt erhalten.

*) 4-5 mal so schnell wie deine lösung\n\n

<!--EDIT|pq|1110366724-->
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
lichtkind
 2005-03-09 14:37
#52405 #52405
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
der komplizierte algorithmus entsprach so ziemlich meiner ersten idee,
leider hab ich nie gross mich mit grep beschäftigt
(dabei hab ich das grep kommando öfters in meinen make scripten verwendet als ich noch c schrieb)

hab jetzt sogar die 2 zeilen verstanden,
wirklich clever schade das ich nach dem ersten beispiel aufgehört mit den beispielen aus der perldoc zu spielen.
man kann leider kein text in der shell markieren und kopieren,
aber ich hätts mir auch in eine datei reinschreiben lassen können.\n\n

<!--EDIT|lichtkind|1110400300-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Crian
 2005-03-14 10:54
#52406 #52406
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=lichtkind,09.03.2005, 13:37]man kann leider kein text in der shell markieren und kopieren,[/quote]
Aber sicher kann man, was hast Du denn für ein Betriebssystem?

Windows: Reinkopieren rechte Maustaste, rauskopieren: Einfach markieren, dann mit Enter kopieren.

Dafür musst Du die Eigenschaften umstellen, aber das ist eh immer eins der ersten Sachen, die ich nach einer Neuinstallation mache.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
lichtkind
 2005-03-14 13:02
#52407 #52407
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ja hat mir manuel dann auch gezeigt
..man lernt nie aus
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2005-03-07 22:01.