Sorting Algorithm Visualiser

C#

Date: September 2015 - November 2015

Supports 20 sorting algorithms and 18 types of start data. Options to view and compare two algorithms simultaneously, change size of the datasets, range of numbers in the dataset and delay. Provides real-time visualisation of the movement of data and swapping of elements in the datasets. This software can serve as a learning tool for people who want to understand how different sorting algorithms operate and in what circumstances one algorithm may be a better choice. The statistics provide an in-depth evaluation of how well an algorithm has performed on the unsorted data. Served as a learning tool for myself for understanding different sorting algorithms and their applications due to their characteristics.

Sorting Visualiser - Concurrent visualisers

Features

  • Real-time visualiser which can also be paused and stopped.
  • 20 sorting algorithms (incl. Bubble, Quick, Merge, Insertion)
  • 18 starting datasets (incl. Random, Reversed, Almost Sorted, Sinusoidal)
  • Option to compare two algorithms simultaneously
  • Customisable dataset size, range and delay
  • Provides statistics for each algorithm
  • Analysis results after sorting data
  • Custom colours and data display styles

Algorithms

  • Bitonic - Parallel sorting algorithm
  • Bogo - Randomly permutates elements
  • Bubble - Common simple algorithm
  • Cocktail - Bubble sort in both directions
  • Comb - Bubble sort variant with reducing gap
  • Cycle - Optimal array writes
  • Gnome - Insertion sort but swaps until element in correct position
  • Heap - Builds heap and extracts from unsorted region
  • Insertion - Builds sorted array one element at a time
  • JSort - Builds heap then uses insertion sort
  • Merge - Recursively merges half of the array
  • OddEven - Compares all odd/even pairs then vice-versa
  • Pancake - Flips array between regions
  • Permutation - Compares every permutation of the array
  • Radix LSD - Analyses least significant digits
  • Selection - Builds sorted array one element at a time
  • Shell - Bubble sort variant with reducing gap
  • Smooth - Builds heap then extracts largest element
  • Stooge - Highly inefficient, recursively sorts first 2/3 then last 2/3
  • Quick - Divide and conquer algorithm that uses a pivot
Sorting Visualiser - Algorithm statistics

Screenshots

Sorting Visualiser - Random Data
Sorting Visualiser - Concurrent visualisers
Sorting Visualiser - Complete and Incomplete simulations
Sorting Visualiser - Dot styled data points
Sorting Visualiser - Algorithm statistics