SE250:lab-3:hals016
Jump to navigation
Jump to search
Lab3
Question 1
For question one I made a loop for the arralist_push function, to change the array value to zero, 10 million times. Here is my code.
int main() { ArrayList arra; int i; arraylist_init(&arra); int clock1,clock2; clock1 = clock(); for(i=0;i<10000000;i++){ arraylist_push(&arra, 0); } clock2=clock(); printf("%d ms", (clock2-clock1)); return 0; }
The result ranged from 550-640ms.
Question 2
For question two I changed the growth factor to a variety of numbers.
'''OUTPUT''' *3 Growth Factor - The for loop of 10 million loops took 594 ms. *9^99999 GF - The for loop of 10 million loops took 531 ms. *1 - Error - /usr/bin/bash: line 1: 5576 Segmentation fault (core dumped) ./arraylist2.exe. *1.1 - The for loop of 10 million loops took 1204 ms. *1.2 - The for loop of 10 million loops took 890 ms. *1.3 - The for loop of 10 million loops took 750 ms. *1.4 - The for loop of 10 million loops took 672 ms.
Question 3
For this question the starting allocation for the array needed to be changed to various numbers.
'''OUTPUT''' ''Original minimum allocation = 16'' Minimum Allocation of 1 - The for loop of 10 million loops took 562 ms. Minimum Allocation of 100 - The for loop of 10 million loops took 594 ms. Minimum Allocation of 99999 - The for loop of 10 million loops took 531 ms. Minimum Allocation of 0.01 - /usr/bin/bash: line 1: 5576 Segmentation fault (core dumped) ./arraylist3.exe.
The results suggest that the starting allocation does not affect the time it takes to do the loop 10 million times.
Question 4
Experiment 1 was repeated but with the added code of using the function "ensure_capacity" to allocate memory (initially) according to the number of loops in the for loop (10 million).
Partial Code ensure_capacity(&arra,10000000);
The output was faster than normal.
'''OUTPUT''' The for loop of 10 million loops took 437 ms.