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 JD-GUI.


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 JD-GUI


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

Good luck with your HW! πŸ˜‰


Tips or tricks?

contact me @fvcproductions

Advertisements

About the Author fvcproductions

I like to dabble with things that ought to be dabbled with.

One comment

  1. Awesome Tutorial FVC! Your analysis of this program took a unique approach that other coders (including myself) didn’t take initially. By approach, I first tried to understand what each of the sorts actually did (algorithm-wise) and then compared what each sort (Alpha Beta, etc.) did within the program. I like the direct approach you took with understanding how the program worked looking at its underlying code!

    Like

Add a comment...

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s