Answer from cs61c-cj (Peter Lau 16539384) for Question 2 The two dimensional array x[][] is stored as a one-dimensional array x[i] whose elements are arrays. Because of this, x[i][j] and x[i][j+1] are stored continguously in memory. Since caches take advantage of sequential memory read speeds, the optimized loop will probably generate more cache hits (due to spatial locality) which will speed up performance. When x[i][j] gets accessed, elements following it in memory will be placed into the cache.