in reply to set theory w/hashes? arrays? done quickly?
There has to be a better way using array slices...... got it
Here is an example for union:
In the above example, the hash keys are the elements of the set. If you let the set be the elements in the hash that also have a nonzero value, then the same technique can be used for intersection:
Also, to answer the original poster: if "REALLY large" is really large, and doesnt fit in the main memory then you might want to store the sets in sorted files and merge them smartly to compute the union/intersection.
Here is an example for union:
I don't really know how to remove elements from the hash.%s1=('a'=>1, 'b'=>1, 'c'=>1); %s2=('a'=>1, 'c'=>1, 'd'=>1); print "Set 1 has: ", join(",",keys %s1), " Set 2 has: ", join(",", k +eys %s2),"\n"; %j=%s1; @j{keys %s2}=1; print "Union is ", join(",", keys %j), "\n";
In the above example, the hash keys are the elements of the set. If you let the set be the elements in the hash that also have a nonzero value, then the same technique can be used for intersection:
%inter=%s1; @inter{%s2}=0;
Also, to answer the original poster: if "REALLY large" is really large, and doesnt fit in the main memory then you might want to store the sets in sorted files and merge them smartly to compute the union/intersection.
|
---|
Replies are listed 'Best First'. | |
---|---|
(tye)RE: Answer: set theory w/hashes? arrays? done quickly?
by tye (Sage) on Oct 04, 2000 at 04:11 UTC |
In Section
Seekers of Perl Wisdom