Skip to content

An educational resource which visually demonstrates a number of common Sorting Algorithms for comparison purposes.

Notifications You must be signed in to change notification settings

Billy-Pentney/Sorting-Algorithm-Visualisations

Repository files navigation

Sorting-Algorithm-Visualisations

Screenshot

A simple WPF C# App which demonstrates a variety of common sorting algorithms used to sort a series of bars. Its primary purpose is for understanding the function and relative efficiency of each sort and to help highlight the advantages and disadvantages of each algorithm.

Current Algorithms:

  • Bubble
    • Standard Bubble Sort
    • Cocktail Shaker Sort
    • Comb Sort
  • Insertion
    • Standard Insertion Sort
    • Binary Insertion
  • Selection
    • Selection Sort
    • Double Selection Sort
    • Shell Sort
  • Quick
    • w/ Lomuto Partitioning
    • w/ Hoare Partitioning
    • w/ Lomuto Median Partitioning
  • Heap
    • Standard Heap Sort with Max Heap
  • Hybrid/Combinations
    • Intro Sort (using Insertion and Heap)
    • Binary Intro Sort (using Binary Insertion and Heap)
  • Other
    • Merge Sort
    • Cycle Sort
    • Patience Sort

The program also includes the ability to change the data distribution function, which further demonstrates the strengths and weaknesses of each algorithm. Example: Insertion Sorts typically perform worse with data sets containing a high number of "small" values, since on each pass, a bar is more likely to be further from its correct position.

Currently, the program can sort on:

  • Randomly-generated values
  • Linearly Interpolated values (constant difference between terms)
  • Exponential values (i.e. more "small" values, fewer "large" values)
  • Logarithmic values (i.e. fewer "small" values, more "large" values)