Sorting Algorithm Visualiser

Journey into the mesmerizing world of data sorting with a visualisation tool designed to demystify the intricate sorting process. This versatile platform empowers you to not only witness but deeply understand how data transforms when processed by sorting algorithms. Featuring a vast array of options and capabilities, it's your gateway to exploring the fascinating realm of data organisation.

C#

Heap Sort


Project Highlights

  • Real-time Visualisation: Immerse yourself in the sorting process with a real-time visualiser that can be paused and stopped at your command. Gain a profound understanding of how algorithms work under the hood.
  • Algorithmic Arsenal: Choose from a diverse lineup of 20 distinct sorting algorithms, each with its own unique characteristics. Explore classics like Bubble Sort, Merge Sort, and Quicksort, and discover their Big-O complexities, stability, and in-place capabilities.
  • Customisation Unleashed: Tailor your sorting experiments with precision. Select from 18 starting datasets, tweak dataset size, range, and delay, and choose custom colours and data display styles to match your preferences.
  • Insightful Statistics: Dive deep into the performance metrics of each algorithm, with detailed statistics including comparisons, swaps, and duration provided. Grasp the true efficiency of each sorting strategy.

Algorithms

BitonicParallel sorting algorithm
BogoRandomly permutates all elements until fully sorted
BubbleCommon simple algorithm
CocktailBubble sort in both directions
CombBubble sort variant with reducing gap
CycleOptimised for minimal array writes
GnomeInsertion sort variant which swaps until element in correct position
HeapBuilds heap and extracts from unsorted region
InsertionBuilds sorted array one element at a time
JSortBuilds heap then uses insertion sort
MergeRecursively merges half of the array
OddEvenCompares all odd/even pairs then vice-versa
PancakeFlips array between regions
PermutationCompares every permutation of the array
Radix LSDBucket sorts digits from least significant to most significant
SelectionBuilds sorted array one element at a time
ShellBubble sort variant with reducing gap
SmoothBuilds heap then extracts largest element
StoogeRecursively sorts first 2/3 then last 2/3
QuickDivide and conquer algorithm that uses a pivot

Screenshots

Unsorted Random Data
Unsorted Random Data
Random and sinusoidal datasets
Random and sinusoidal datasets
Bitonic sort and sorted dataset
Bitonic sort and sorted dataset
Dataset visualised as points
Dataset visualised as points
Algorithm information table
Algorithm information table