Categories

# Sort Detective – Solution

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

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

Head over to the Java Decompiler page located at `jd.benow.ca`) and download the `ZIP` file for the `JD-GUI`.

## Step 2 – Launch JD-GUI

Now that you’ve downloaded the `ZIP` file, unzip it and launch the application.

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

## Step 5 – Apply Formula To `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

## By Frances Coronel

Frances Coronel is a software engineer specializing in UI development on the Customer Acquisition Team at Slack where her mission is to make your working life simpler, more pleasant, and more productive.

She has been working professionally as a developer since 2015 and holds a Bachelors in Computer Science from Hampton University and a Masters in Computer Science from Cornell Tech.

Outside of Slack, Frances is an Executive Director of Techqueria, a 501c3 nonprofit that serves the largest community of Latinx in Tech in the US.

She also supports Code Nation as a member of their Bay Area Leadership Council and the Latino Community Foundation as a member of their Latinos in Tech Giving Circle.