It seemed that operations like assigning values to variables take a lot of time. For example, insert sort 2 in the 10th lab was faster than insert sort 1 because instead of swapping (involves assigning) values, it returned the index of the right spot to insert and only assign value to that index.
I was surprised by the speed of the build-in sort. I did understand why merge sort is always fast but I the build-in sort is still way faster than it. I learnt it at the end of the lab. TA showed us how the build-in sort divides the list into many pieces and merge them in the end. It was so fast because dividing and merging lists take linear time but sorting requires more.
I am still a bit unclear about the two versions of bubble sort. From the description, it looked like the second one should be faster, since it would stop when not necessary. But in our test, the first one is faster. I will try to figure that out.