Project: StringSort

Specialized sorts for string keys

Version 11/26/17

Educational Objectives: After completing this assignment, the student should be able to accomplish the following:

Operational Objectives: Develop optimized implementations of the three string (key) sort algorithms LSD, MSD, and QS-3W, and conduct experiments with different characteristic alphabet and string populations with recommendations on when to us which sort.

Deliverables: Files:

lsd.h          # LSDSort() 
msd.h          # MSDSort()
qs3w.h         # QuickSort3w()
sort_util.h    # support for sorting algorithms
fssort.cpp     # functionality tests for all string sorts
ssspy.cpp      # spy & timer harness specialized to string sorts

makefile       # builds all project object code and executables
manual.txt     # operating instructions for software [team document]
report.txt     # overview of team and project [team document]
log.txt        # personal log for team member [individual document]

Submit command: submit.sh deliverables.ss

Background: See Strings 2 for background overview of strings and specialized string sorts.

Code Requirements and Specifications

  1. Files lsd.h, msd.h, and qs3w.h contain the code implementing LSDSort, MSDSort, and QuickSort3w respectively.

  2. All three sort paradigms should be optimized for speed. If more than one version of a given sort is uses, place all versions in the same header file.

  3. File ssspy.cpp builds to ssspy.x, a client program that assesses runtime efficiency of the sorts by both clock time and number of character comparisons (and any other metric you find appropriate).

  4. Test data characteristics, results of tests, and recommendations should be given in report.txt.