MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

FW: Re: Lists to mask other lists

  • To: mathgroup at smc.vnet.net
  • Subject: [mg19295] FW: [mg19275] Re: Lists to mask other lists
  • From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
  • Date: Thu, 12 Aug 1999 22:34:49 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

In [mg19275] Allan Hayes noted that my response to 
the subject "Lists to mask other lists" is very slow 
in timing tests.
--------------------------

Consider the list below.

In[1]:=
 lst1 = lst2 = {91,92,93,94,95,96};

----------------
In essence the timing champ (by Allan Hayes) uses the line below.

In[2]:=
lst1[[{2,3,5}]]=a;lst1

Out[2]=
{91,a,a,94,a,96}

-----------------
My solution which is dreadfully slow is essentially the next line.

In[3]:=
ReplacePart[lst2,a,{{2},{3},{5}}]

Out[3]=
{91,a,a,94,a,96}

-----------------

The timing test below shows that ReplacePart 
(as used above) is a little worse than O[n^2].

So we know ReplacePart isn't the smart solution for this type of situation.
Well ReplacePart has several other forms.  I wonder if they are also
sluggish.


In[4]:=test[n_]:=
 (size=2Floor[1000*2^n];
   p1=Union[Table[{Random[Integer,{1,size}]},  {size/2}]];
   lst2=Table[Random[],{size}];
   t1=(ReplacePart[lst2,a,p1];//Timing//First);
   {size,t1}
 )


In[5]:=
data=Table[test[n],{n,0,4}]

Out[5]=
  {{2000,    0.33 Second},
   {4000,    1.37 Second},
   {8000,    5.82 Second},
   {16000,  27.19 Second},
   {32000, 130.39 Second}}

-------------
Regards,
Ted Ersek


  • Prev by Date: ungrouping cells
  • Next by Date: circumference of an ellipse
  • Previous by thread: Re: Lists to mask other lists
  • Next by thread: How can I control FindMinimum's behavior?