SE250:lab-3:sbha077
Lab 3 Report
Task 1
We had to calculate the time taken to insert n elements into an array (ArrayList) using the arraylist_push function.
CODE >>
#include "arraylist.c"
#include <time.h>
int main() {
ArrayList myArr;
int n = 12345678;
clock_t start, stop;
int i;
double elapsed;
arraylist_init(&myArr);
start = clock();
for (i = 0; i<n; i++) {
arraylist_push(&myArr, 2);
}
stop = clock();
elapsed = ((double) (stop - start)) / CLOCKS_PER_SEC;
printf("\n Time taken for %d pushes = %lf\n", n, elapsed);
return 0;
}
RESULTS >>
Trial 1 : Time taken for 12345678 pushes = 0.468000 seconds Trial 2 : Time taken for 12345678 pushes = 0.468000 seconds Trial 3 : Time taken for 12345678 pushes = 0.468000 seconds Trial 4 : Time taken for 12345678 pushes = 0.484000 seconds Trial 5 : Time taken for 12345678 pushes = 0.515000 seconds
OBSERVATION >>
It takes about 0.5 odd seconds on my laptop for 12345678 pushes.
Task 2
RESULTS >>
Trial 1 ( * 3.0 ) : Time taken for 12345678 pushes = 0.453000 seconds Trial 2 ( * 4.0 ) : Time taken for 12345678 pushes = 0.421000 seconds Trial 3 ( * 5.0 ) : Time taken for 12345678 pushes = 0.421000 seconds Trial 4 ( * 10.0 ): Time taken for 12345678 pushes = 0.390000 seconds Trial 5 ( * 100.0): Time taken for 12345678 pushes = 0.390000 seconds
OBSERVATION >>
Not a major difference in time observed here.
Task 3
RESULTS >>
Trial 1 (ARRAYLIST_MIN_ALLOC = 100) : Time taken for 123456789 pushes = 4.906000 seconds Trial 2 (ARRAYLIST_MIN_ALLOC = 1000) : Time taken for 123456789 pushes = 4.531000 seconds Trial 3 (ARRAYLIST_MIN_ALLOC = 10000) : Time taken for 123456789 pushes = 4.812000 seconds Trial 4 (ARRAYLIST_MIN_ALLOC = 100000) : Time taken for 123456789 pushes = 4.968000 seconds Trial 5 (ARRAYLIST_MIN_ALLOC = 1000000) : Time taken for 123456789 pushes = 4.546000 seconds
OBSERVATION >>
Interestingly, there really isn't much of a time change. Infact unless we get pedantic with our times, there really isn't any noticable difference in time.
Task 4
RESULTS >>
Trial 1 (preallocated space = 10) : Time taken for 123456789 pushes = 0.390000 seconds Trial 2 (preallocated space = 100) : Time taken for 123456789 pushes = 0.390000 seconds Trial 3 (preallocated space = 1000) : Time taken for 123456789 pushes = 0.375000 seconds Trial 4 (preallocated space = 10000) : Time taken for 123456789 pushes = 0.375000 seconds Trial 5 (preallocated space = 10000000) : Time taken for 123456789 pushes = 0.390000 seconds
OBSERVATION >>
Again, no noticable time difference experienced; they are rather consistent.
Task 5
RESULTS >>
Task 6
RESULTS >>