![]() |
|
Do you know where your variables are? | |
PerlMonks |
Re: Range overlap (with a lot of ranges)by moritz (Cardinal) |
on May 24, 2010 at 11:30 UTC ( #841369=note: print w/replies, xml ) | Need Help?? |
I haven't read the references you posted earlier, so please forgive me if that one was already suggested. You could store for each location an array of ranges that contain it:
Once this table is built, for every range it's very fast to test which other ranges overlap. To save memory, you can also use a string in each location, so that if you have ranges 1-5 and 4-6, the entry for for 5 would be 1-5,4-6. One million strings should fit into memory. If the array is rather sparse, you could also use a hash instead.
Perl 6 - links to (nearly) everything that is Perl 6.
In Section
Seekers of Perl Wisdom
|
|