Project 2f
150 points

Must be done alone

This project will display the inner workings of a variety of sorting routines via a windowed environment.  The purpose of this assignment is to allow you to work with basic animation.


Create a windowed program that will give the user a choice of generating an array of integers (or doubles) that is:

The contents of the array should then be displayed on the form.  The size of the array is up to you.  You can allow the user to choose the size, but make sure it's not so big such that the contents can't be displayed on the form.

Allow the user to choose from a variety of sorting routines (implement at least 3 of these for your program):

The algorithms for all these sorts can be found at the following site: under the class notes section.  These algorithms are in Java, so will not require much modification for use in C#.  You can also download the following file:  It contains the source code for the above sorts.  They can be found in the chapter 9 folder -- there is a subfolder called "by name" that describes each sort by name.

Your program should show at the very least how the data in the array is moved, step by step, based on the chosen sorting algorithm.  This is where you should incorporate "animation."  For each step you can require user input before continuing to the next step or you can use a timer to provide a sufficient delay between the steps.

Considerations/Enhancements for extra credit

  1. Include more than 3 sorting routines
  2. Include an option to run each sorting routine on the same set of data and time how long each takes.  For this feature, you probably want the arrays to be big and you don't want to display the inner workings.
  3. ? (see instructor)

To turn in