Skip to content

1. Problem Definition

Kelly Stewart edited this page Jun 18, 2015 · 1 revision

Goals

  • Visualization of a variety of sorting algorithms
  • Animated, coloured visualization
  • Ability to select custom sort data
  • User can select a sorting algorithm
  • Simple, attractive interface
  • Allow possibility for later expansion to include other types of algorithms

Sorting algorithms

  • Insertion
  • Selection
  • Merge
  • Heapsort
  • Quicksort
  • Bubble
  • Shell
  • Comb
  • Counting
  • Bucket
  • Radix
  • Bogosort
  • Bogobogosort
  • Stooge sort

Preliminary plan

The program will be implemented as a webapp. It will be structured using the Python web framework Flask, and Javascript for creating the actual animations. Alternatively, it may be possible to use CSS for the animations, which would allow users with Javascript disabled to use the site, but would also require a great deal of additional coding and ultimately not be worth the reward. It could be implemented later as a fallback, however.

Constraints and Issues

  • Usable in all major web browsers and their recent versions
  • Not too much work or complexity
  • Limited 2 week time period

Social and Ethical Issues

There are few social and ethical issues associated with the program with the only caveat of licensing and copyright issues that are inherent with software programs.

Licensing

This tool is licensed under the GNU General Public License 2.0, which essentially allows code to be modified and redistributed if released under the same license.