Answer from cs61c-ei (Jing Chen 16669246) for Question 2 In the first case, the compiler is executing the inner loop 200 times for the 20 iterations of the outer loop. In the second case, the compiler executes the inner loop 20 times for the 200 iterations of the outer loop. The reason the compiler would want to perform this sort of optimization is to increase runtime performance by increasing access to cache and essentially utilizing the memory hierarchy system. The reason for this lies in the fact that sequential memory access occurs frequently and can be done very fast using caches. Therefore, it is faster to iteration through the rows of the multi-dimensional array and then go through all the columns at each iteration.