I was given a class in Java called BlackBox.java. There are four types of sorting methods in this class and they are called sort1, sort2, sort3 and sort4. It is given that we have Mergesort, Heapsort, Quicksort with the first place in the array as pivot (does not use StdRandom.shuffle), and finally we have Quicksort which take the middle of first and last elements and use that as pivot (also does not use StdRandom.shuffle).
The problem is that I need to find out which sorting method (sort1, sort2, sort3, sort4) is what. I have already counted the time with input of 500.000 integers. First I used random ordered input, than I used input sorted regularly and than I used input sorted reverse and finally I used a really big input with the same integer, 3 everywhere ({3 3 3 3 3...}). Sometimes I got stack overflow and sometimes not. I also got very similar sorting time for all of them, I mean very similar that I was not able to use it to tell which sorting algorithm I was using.
How can I find out which algorithm is what? What methods should I use?
P.s. I have already read chapter 1.4 in the book Algorithms written by Sedgewick and wayne and done alot of search on the internet. Maybe I am not understanding chapter 1.4 enough. So, I ask you to help me with this problem if you can.
Also, I am not aloud to check the bytecode.