SE250:lab-3:zyan057

From Marks Wiki
Jump to navigation Jump to search

Task 1

Code:

#include <stdio.h>
#include <time.h>
#include "arraylist.h"

int main (void){
    int i;
	ArrayList al;
	clock_t start;
	clock_t finish;
	clock_t time;

	arraylist_init(  &al );

	start = clock();

	for (i = 0; i < 1000000; i++) {
		arraylist_push(&al, 1);
	}

	finish = clock();

	time = finish - start;
	printf("%ld ticks", time);

	return 0;
}

Results:

value for i      time taken(ticks)
1000000          159
5000000          883
10000000         1607
50000000         7964
100000000        15816
500000000        error, out of memory

Task 2

Results:

growth factor   time taken for n = 10000000 (ticks)
2               1607
3               1616
4               1674
5               1649
6               1698
10              1484
20              1885
30              1633

Above results showed that using n = 10000000 does not make much difference. So I tried using n = 100000000.

growth factor   time taken for n = 100000000 (ticks)
2               16438
3               15972
4               15133
5               14709
6               14704
10              15145
20              error, out of memory

Still, does not make much diference.

Task 3

Results:

ARRAYLIST MIN ALLOC        time taken for n = 100000000 (ticks)
16                         16438
32                         15646
64                         15279
128                        15933
256                        15878
512                        15315
1024                       15912
2048                       15315

Again, does not make much difference. I wonder if there is something wrong with my work...

Task 4