Re: Algorithm Analysis Course: Should I use Mathematica for projects?
- To: mathgroup at smc.vnet.net
- Subject: [mg127296] Re: Algorithm Analysis Course: Should I use Mathematica for projects?
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Sat, 14 Jul 2012 01:32:09 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
On 7/13/12 at 2:55 AM, fateman at cs.berkeley.edu (Richard Fateman)
wrote:
>An example.
>Create 3 arrays.
>A=Table[i,{i,0,100}];
>B=Table[i,{i,0,1000}];
>Q=Table[i,{i,0,10000}];
>Try updating the 50th element of each of these items, which look
>like arrays in Mathematica.
>Timing [A[[50]],{i,0,100000}]
It is hard to understand what you mean here. If I paste what you
posted into Mathematica I see the portion {i,0,100000} colored
red. Not surprising since Timing accepts one argument not two.
Perhaps you meant something like
Timing[Do[a[[50]], {i, 100000}]]
>Timing [B[[50]],{i,0,100000}]
>Timing [Q[[50]],{i,0,100000}]
>On my computer, these results take 0.266 seconds, 0.453 seconds, and
>2.25 seconds,
Assuming you did mean repeatedly reading the 50th element of
each list, I cannot reproduce your results. I get
In[1]:= a = Range[100];
b = Range[1000];
c = Range[10000];
In[4]:= Timing[Do[a[[50]], {i, 100000}]]
Out[4]= {0.054508,Null}
In[5]:= Timing[Do[b[[50]], {i, 100000}]]
Out[5]= {0.055219,Null}
In[6]:= Timing[Do[c[[50]], {i, 100000}]]
Out[6]= {0.053313,Null}
which indicates a constant access time.
>Now, instead of creating these guys as what appears to be arrays,
>one uses
>A=Array[#&,100]
>B=Array[#&,1000]
>Q=Array[#&,10000]
>How does that change the results?
On my machine, not much
In[8]:= a = Array[# &, 100];
b = Array[# &, 1000];
c = Array[# &, 10000];
In[11]:= Timing[Do[a[50], {i, 100000}]]
Out[11]= {0.034209,Null}
In[12]:= Timing[Do[b[50], {i, 100000}]]
Out[12]= {0.032917,Null}
In[13]:= Timing[Do[c[50], {i, 100000}]]
Out[13]= {0.033273,Null}