<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE250%3Alab-3%3Amabd065</id>
	<title>SE250:lab-3:mabd065 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE250%3Alab-3%3Amabd065"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-3:mabd065&amp;action=history"/>
	<updated>2026-04-28T22:34:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.kram.nz/index.php?title=SE250:lab-3:mabd065&amp;diff=5608&amp;oldid=prev</id>
		<title>Mark: 1 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-3:mabd065&amp;diff=5608&amp;oldid=prev"/>
		<updated>2008-11-03T05:19:21Z</updated>

		<summary type="html">&lt;p&gt;1 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;float:right;&lt;br /&gt;
| __TOC__ &lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
[[SE250:lab-3|Back to Lab Reports]]&lt;br /&gt;
== Lab 3 ==&lt;br /&gt;
&lt;br /&gt;
===Task 1===&lt;br /&gt;
&lt;br /&gt;
running the following code multiple times:&lt;br /&gt;
&lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     double start,end,diff;&lt;br /&gt;
     int i;&lt;br /&gt;
     ArrayList myarr;&lt;br /&gt;
 &lt;br /&gt;
     arraylist_init(&amp;amp;myarr);&lt;br /&gt;
 &lt;br /&gt;
     start = clock();&lt;br /&gt;
 &lt;br /&gt;
     for (i = 0; i &amp;lt; 10000000; i++)&lt;br /&gt;
     {&lt;br /&gt;
 	arraylist_push(&amp;amp;myarr, 5);&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     end = clock();&lt;br /&gt;
     diff = end - start;&lt;br /&gt;
 &lt;br /&gt;
     printf(&amp;quot;It took %.f ticks / %d s.\n&amp;quot;, diff , CLOCKS_PER_SEC );&lt;br /&gt;
     &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Gives the following values:&lt;br /&gt;
&lt;br /&gt;
 It took 562 ticks / 1000 s.&lt;br /&gt;
 It took 579 ticks / 1000 s.&lt;br /&gt;
 It took 547 ticks / 1000 s.&lt;br /&gt;
&lt;br /&gt;
 Average: 563 ticks / 1000 s.&lt;br /&gt;
&lt;br /&gt;
===Task 2===&lt;br /&gt;
CODE:&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     double start,end,diff;&lt;br /&gt;
     int i;&lt;br /&gt;
     ArrayList myarr;&lt;br /&gt;
 &lt;br /&gt;
     arraylist_init(&amp;amp;myarr);&lt;br /&gt;
 &lt;br /&gt;
     start = clock();&lt;br /&gt;
 &lt;br /&gt;
     for (i = 0; i &amp;lt; 1000000000; i++)&lt;br /&gt;
     { &lt;br /&gt;
 	arraylist_push(&amp;amp;myarr, 5);&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     end = clock();&lt;br /&gt;
     diff = end - start;&lt;br /&gt;
 &lt;br /&gt;
     printf(&amp;quot;It took %.f ticks / %d s.\n&amp;quot;, diff , CLOCKS_PER_SEC );   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
&lt;br /&gt;
Results:&lt;br /&gt;
&lt;br /&gt;
 Put = 6.0 || It took 5031  ticks / 1000 s || 100 000 000 loops&lt;br /&gt;
 Put = 5.0 || It took 5078  ticks / 1000 s || 100 000 000 loops&lt;br /&gt;
 Put = 4.0 || ERROR                        || 100 000 000 loops  || assertion &amp;quot;alist-&amp;gt;arr != (element_t*)0&amp;quot; failed: file &amp;quot;arraylist.c&amp;quot;, line 40&lt;br /&gt;
 Put = 3.0 || ERROR                        || 100 000 000 loops  || assertion &amp;quot;alist-&amp;gt;arr != (element_t*)0&amp;quot; failed: file &amp;quot;arraylist.c&amp;quot;, line 40&lt;br /&gt;
 Put = 2.0 || It took 6093  ticks / 1000 s || 100 000 000 loops&lt;br /&gt;
 Put = 1.5 || It took 6875  ticks / 1000 s || 100 000 000 loops&lt;br /&gt;
 Put = 1.1 || It took 13796 ticks / 1000 s || 100 000 000 loops&lt;br /&gt;
&lt;br /&gt;
 Put = 1.001 || ERROR || 1 000 000 000 loops ||       &lt;br /&gt;
 	49 [main] lab3 2588 _cygtls::handle_exceptions: Exception: STATUS_ACCESS_VIOLATION&lt;br /&gt;
  	13051 [main] lab3 2588 open_stackdumpfile: Dumping stack trace to lab3.exe.stackdump&lt;br /&gt;
&lt;br /&gt;
As the factor increases, the number of reallocations decreases, hence the faster it takes to executs.&lt;br /&gt;
&lt;br /&gt;
===Task 3===&lt;br /&gt;
&lt;br /&gt;
CODE:&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     double start,end,diff;&lt;br /&gt;
     int i;&lt;br /&gt;
     ArrayList myarr;&lt;br /&gt;
 &lt;br /&gt;
     arraylist_init(&amp;amp;myarr);&lt;br /&gt;
 &lt;br /&gt;
     start = clock();&lt;br /&gt;
 &lt;br /&gt;
     for (i = 0; i &amp;lt; 1000000000; i++)&lt;br /&gt;
     { &lt;br /&gt;
 	arraylist_push(&amp;amp;myarr, 5);&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     end = clock();&lt;br /&gt;
     diff = end - start;&lt;br /&gt;
 &lt;br /&gt;
     printf(&amp;quot;It took %.f ticks / %d s.\n&amp;quot;, diff , CLOCKS_PER_SEC );&lt;br /&gt;
    &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
&lt;br /&gt;
Results:&lt;br /&gt;
&lt;br /&gt;
 MIN Allocation = 16 || It took 6734 ticks / 1000 s || 100 000 000 loops&lt;br /&gt;
 MIN Allocation = 20 || ERROR                       || 100 000 000 loops&lt;br /&gt;
 MIN Allocation = 20 || It took 562  ticks / 1000 s || 1 0 000 000 loops&lt;br /&gt;
 MIN Allocation = 30 || It took 609  ticks / 1000 s || 1 0 000 000 loops&lt;br /&gt;
 MIN Allocation = 32 || It took 625  ticks / 1000 s || 1 0 000 000 loops&lt;br /&gt;
 MIN Allocation = 40 || It took 703  ticks / 1000 s || 1 0 000 000 loops&lt;br /&gt;
&lt;br /&gt;
When MIN Allocation = 100 000 000:&lt;br /&gt;
I get : assertion &amp;quot;alist-&amp;gt;arr != (element_t*)0&amp;quot; failed: file &amp;quot;arraylist.c&amp;quot;, line 40&lt;br /&gt;
&lt;br /&gt;
because the MIN value is greater than the number of loops (10 000 000).&lt;br /&gt;
&lt;br /&gt;
===Task 4===&lt;br /&gt;
CODE:&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     double start,end,diff;&lt;br /&gt;
     int i, number = 10000000;&lt;br /&gt;
     ArrayList myarr; &lt;br /&gt;
 &lt;br /&gt;
     arraylist_init(&amp;amp;myarr);&lt;br /&gt;
 &lt;br /&gt;
     start = clock();&lt;br /&gt;
 &lt;br /&gt;
     ensure_capacity(&amp;amp;myarr, number);&lt;br /&gt;
 &lt;br /&gt;
     for (i = 0; i &amp;lt; number; i++)&lt;br /&gt;
     {&lt;br /&gt;
 	arraylist_push(&amp;amp;myarr, 5);&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     end = clock();&lt;br /&gt;
     diff = end - start;&lt;br /&gt;
 &lt;br /&gt;
     printf(&amp;quot;It took %.f ticks / %d s.\n&amp;quot;, diff , CLOCKS_PER_SEC );&lt;br /&gt;
      &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
&lt;br /&gt;
Results:&lt;br /&gt;
 It took 485 ticks / 1000 s.&lt;br /&gt;
 It took 500 ticks / 1000 s.&lt;br /&gt;
 It took 484 ticks / 1000 s.&lt;br /&gt;
&lt;br /&gt;
 Average: 490 ticks / 1000 s.&lt;br /&gt;
&lt;br /&gt;
This code runs faster (490) compared to the one in task 1 (563).&lt;br /&gt;
&lt;br /&gt;
===Task 5===&lt;br /&gt;
&lt;br /&gt;
CODE:&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
&lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     long start,end,diff;&lt;br /&gt;
     int i;&lt;br /&gt;
     ArrayList myarr;&lt;br /&gt;
     &lt;br /&gt;
     arraylist_init(&amp;amp;myarr);&lt;br /&gt;
 &lt;br /&gt;
     start = clock();&lt;br /&gt;
    &lt;br /&gt;
     for (i = 0; i &amp;lt; 100000; i++)&lt;br /&gt;
     {&lt;br /&gt;
 	arraylist_push(&amp;amp;myarr, 5);&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
     end = clock();&lt;br /&gt;
     diff = end - start;&lt;br /&gt;
 &lt;br /&gt;
     printf(&amp;quot;It took %ld ticks / %d s.\n&amp;quot;, diff , CLOCKS_PER_SEC );&lt;br /&gt;
    &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
Results:&lt;br /&gt;
&lt;br /&gt;
 Loops = 100 000 || It took 0  ticks / 1000 s&lt;br /&gt;
 Loops = 100 000 || It took 15 ticks / 1000 s&lt;br /&gt;
 Loops = 100 000 || It took 15 ticks / 1000 s&lt;br /&gt;
&lt;br /&gt;
===Task 6===&lt;br /&gt;
&lt;br /&gt;
CODE :&lt;br /&gt;
&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     long start,end,diff;&lt;br /&gt;
     int i;&lt;br /&gt;
     ArrayList myarr;&lt;br /&gt;
     &lt;br /&gt;
     arraylist_init(&amp;amp;myarr);&lt;br /&gt;
 &lt;br /&gt;
     start = clock();&lt;br /&gt;
    &lt;br /&gt;
     for (i = 0; i &amp;lt; 10000; i++)&lt;br /&gt;
     {&lt;br /&gt;
 	arraylist_put(&amp;amp;myarr, 5, 0);&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
     end = clock();&lt;br /&gt;
     diff = end - start;&lt;br /&gt;
 &lt;br /&gt;
     printf(&amp;quot;It took %ld ticks / %d s.\n&amp;quot;, diff , CLOCKS_PER_SEC );    &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
Results:&lt;br /&gt;
&lt;br /&gt;
 Loops = 1   000 || It took 0    ticks / 1000 s&lt;br /&gt;
 Loops = 1 0 000 || It took 47   ticks / 1000 s&lt;br /&gt;
 Loops = 100 000 || It took 4625 ticks / 1000 s&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>