Sort Detective - Solution ☕
ℹ Stuck on that homework assignment involving SortDetective.jar? No need to worry!
📅️ Saturday - April 18, 2015
⏰ 2 min read ∙ 342 words
This tutorial is “certifiably” Mac Friendly. Whoop.
Files Provided To You
SortDetective.jar, which looks something like this:
The purpose of this little HW assignment is to correctly identify the 6 Greek letters (Alpha, Beta, Gamma, Delta, Epsilon, & Zeta) with their matching sorting method (selection, insertion, bubble, quick, merge, & heap sort).
Step 1 - Download JD-GUI
Head over to the Java Decompiler page located at
jd.benow.ca) and download the
ZIP file for the
Step 2 - Launch JD-GUI
Now that you’ve downloaded the
ZIP file, unzip it and launch the application.
Step 3 - Open your
SortDetective.jar file using
Step 4 - Find the Formula That Determines The Order
SortDetective.jar determines the sorting method ordering according to your student ID.
It has an array defined with 5 different orders that the sorting methods CAN be placed in. See
Line 256 in the
With some minor searches, we find out that the method
experimentOrders uses the variable
selectedPermutation to determine what array value it will use to determine the order.
This redirects us to the
setStudentID() method. So now we’ve figured out the ordering all just depends on the formula the program uses.
Step 5 - Apply Formula To
So, in my case, my student ID is
Using the formula, we can determine that the value of
selectedPermutation is going to be
2 for me since
2.4 or simply
int. That means that the array value for
experimentOrders will be
2, making a match to the order found on
Line 7 when zooming in to
Line 256 in
Remember, arrays are ordered like
experimentOrders would be the 3rd value in the array.
There we go! Just like that, I now know for sure that the ordering of the Greek letters for me would go
- Alpha - Quick Sort
- Beta - Selection Sort
- Gamma - Merge Sort
- Delta - Bubble Sort
- Epsilon - Insertion Sort
- Zeta - Heap Sort