Question 1 and 2- a table will be fine as your answer for question 1 and for question 2.
Question 3- You should give the worst case running time of each sort. No explanation is required here. What question 3 is saying is reminding you that you should be picking non-trivial problem sizes. If the runtime data you collected in question 2 is in conflict or in no way suggesting the runtimes you say then you should consider collecting more runtime data. We don't expect curves that show a perfect nlogn or anything like that though, just reasonable data. The recommendation of "measuring different algorithms at different input sizes" is a good one to be mindful of. Try to pick values of n that help you discern the running time of a particular algorithm.
Question 4- It is only question 4 that requires you to give explanations. A good answer to question 4 is a strong argument. I would try for two, if possible three strong points that support your claim of what sort this is. I would recommend looking at this posting may help clarify what is needed for the different questions.
Heapsort- Similar to the code from the book (and the optimized version discussed in class), this code uses the original array for everything.
File Format- Pdf or word are the preferred file formats.
Negative Comparison?- The comparison and movement counters might overflow for large values of N. You will notice this because they start showing negative values.