# Sorting Algorithms

## A project to implement and compare the efficiency of several sorting algorithms in Java.

This project is designed to teach:
* Principles of object-oriented design such as: inheritance, polymorphism
* How Java file I/O works
* How to use abstract methods or helper classes with static methods
* How Java packages work
* The implementation and data structures behind several common sorting algorithms

For this project you will write classes to implement several different sorting algorithms. These classes will be subclasses of a more abstract Sorter class, which will hold the methods and instance fields common to all of the algorithms. You will also write a class to hold the efficiency data returned by your algorithms, and a class to create files of random numbers. As the project continues, you may wish to write other classes as well.

Throughout the project, look for ways to use object oriented design to avoid code duplication.
