MCS-177 Project: Timing Card Sorting
What is a good algorithm for sorting a set of cards? In this project,
you will compare the speeds of two different methods for sorting numbered
cards by doing the card-sorting experiment described in section 4.1 of
the book. Be sure to read through the beginning of this section before
coming to lab, in particular the sidebars on pages 77-79 describing the
two sorting algorithms. You will not have to hand in a lab report, and
we will discuss the results of the experiment in class.
Instead of using physical cards to do your sorting, you will use
simulated cards, in the form of a pair of Java applets.
In order to use these applets, you will first need to "enable Java"
in Firefox (if it is not enabled already).
This is done by selecting "Enable Java" under the
"Web Features" category in your preferences; you can get to
your preferences by selecting the "Preferences ..." sub-item
in the "Edit" menu in Firefox. If you have
any questions about this, ask your lab instructor.
After enabling Java, go to the Card
sorting simulations webpage, which is linked from the web version
of this handout. We give instructions there about how to
run the applets, and we will demo them in lab anyway. We want you to do
selection and mergesort with 4, 8, 16, and perhaps 32 cards (32 with selection
sort is painful). Please record your times in a table in order to report
them to the lab instructor.
When you are done sorting 4, 8, 16, and 32 cards using each of the two
sorting algorithms, bring your times to the lab instructor for
incorporation in the class-wide graph. If you run out of time without
getting all eight timings done, don't worry about it--depending on how
many false starts you have until you get the hang of the two sorting
algorithms, and how speedy you are with the cards, you might not get
all eight done, but you'll no doubt still get the main point of the