Re: unions
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: unions
- From: John Lee <lee at math.washington.edu>
- Date: Tue, 2 Jun 92 10:30:30 -0700
Zdravko Balorda <zdravc at robo.fer.yu> writes:
Given n closed intervals find their Union. For instance:
[0,2];[2,4];[1,5]
The union of the above 3 intervals would be [0,5].
The union of the following:
[0,2];[3,5]
would be [0,2][3,5].
The algorithm goes like this:
1. Sort all the intervals
2. Find unions of all adjacent pairs
3. Repeat step 2 while the result is changing.
Could anyone make any suggestions on real Mma code for that?
Your algorithm seems as good as any. Here it is in Mathematica code:
In[34]:= intervalunion [ listofintervals_ ] :=
Sort[listofintervals] //. {a___, {b_,c_}, {d_,e_}, f___} :>
{a, {b,e}, f} /; c >= d;
In[35]:= intervalunion[ { {3,5}, {1,4} } ]
Out[35]= {{1, 5}}
In[36]:= intervalunion[ { {1,4}, {3,5}, {-1,0}, {6,7}, {1,2}, {7,9} } ]
Out[36]= {{-1, 0}, {1, 5}, {6, 9}}
Jack Lee
Dept. of Mathematics
University of Washington
Seattle, WA 98105