# Sort Detective - Solution

Stuck on that homework assignment involving SortDetective.jar? No need to worry! ☕

📅️April 18, 2015

📖2 min read ∙ 342 words

Stuck on that homework assignment involving SortDetective.jar? No need to worry! ☕

📅️April 18, 2015

📖2 min read ∙ 342 words

This tutorial is “certifiably” Mac Friendly. Whoop.

`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).

Head over to the Java Decompiler page located at `jd.benow.ca`

) and download the `ZIP`

file for the `JD-GUI`

.

Now that you’ve downloaded the `ZIP`

file, unzip it and launch the application.

`SortDetective.jar`

file using `JD-GUI`

`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 `SortDetective.class`

.

Zooming in…

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.

`experimentOrders`

So, in my case, my student ID is `00319124`

.

Using the formula, we can determine that the value of `selectedPermutation`

is going to be `2`

for me since `319124`

/ `10`

% `5`

= `2.4`

or simply `2`

for `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 `SortDetective.class`

.

Remember, arrays are ordered like `{0,1,2}`

. So `experimentOrders[2]`

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