1. For a given array size, the number of comparisons and number of moves is the same, regardless of the actual initial contents of the array. 2. When n doubles from 100 to 200, the comparisons quadruple from ~5,000 to ~20,000. When n doubles from 100 to 200, the number of moves doubles from ~300 to ~600. 3. When n quadruples from 200 to 800, the comparisons increase 16-fold to ~320,000. When n quadruples from 200 to 800, the number of moves quadruples from ~600 to ~2,400. 4. The number of comparisons seems to be O(n^2). The number of moves seems to be O(n). 5. Selection sort 6. Yes. Selection sort always makes the same number of comparisons regardless of the initial contents of the array, because for each position i, it scans from i to the end of the array to find the smallest remaining element. The number of moves also does not vary because after each scan, we swap the smallest remaining element with the value currently in position i. 7. The number of comparisons performed by insertion sort varies because it isn't always necessary to perform a backwards pass for a given element, and a given backwards pass may not need to go all the way back to the beginning of the array. 8. As n doubles from 100 to 200, the average number of comparisons increases by a factor of 10384/2721 = 3.81. Although this is not the 4-fold increase we expect for an O(n^2) algorithm, it is closer to O(n^2) than it is to O(n log n). Using larger array sizes and averaging over more runs would produce an increase that is closer to the expected quadrupling.