Merge Sort Algorithm

This is the Merge Sort Algorithm.

MergeSort is based on a simple "Divide and Conquer" approach. The principle behind it is simple: We want to sort an entire list, but if this entire list is sorted, then each half of this list must also be sorted. It is an easier problem to sort a smaller list than a larger list, so we sort each of the smaller lists. Once these two lists are sorted, we run a merge algorithm which combines the two smaller lists into one larger list. These smaller lists are then sorted using the same principle until our smaller lists are of size 1 or 2, in which case we can simply swap the two items or return the item itself.

The pseudocode for this algorithm is as follows:
MergeSort(A, start, end)
     if ((end - start + 1) = 1)
          return A
     end if

     mid <- (end - start) / 2

     left <- {A[start], A[start+1], ... A[mid]}
     right <- {A[mid+1], A[mid+2], ... A[end]

     left <- MergeSort(left, 0, mid)
     right <- MergeSort(right, 0, end-mid)

     return Merge(left, right)
end MergeSort



Show Work?

Recent Updates

  • 10-27-2016 Independent Set Puzzles
  • 06-28-2016 Lets Learn About XOR Encryption
  • 06-15-2016 Discrete-time Markov Chains
  • 03-01-2016 Topological Sort
  • 01-21-2016 The RSA Algorithm
  • 11-20-2015 How To Take Notes in Math Class
  • 10-28-2015 The Depth-First-Search Algorithm
  • 10-28-2015 The Breadth-First-Search Algorithm
  • 09-23-2015 ID3 Algorithm Decision Trees
  • 07-08-2015 Clique Problem Puzzles
  • 06-25-2015 Unidirectional TSP Puzzles
  • 04-04-2015 Learn About Descriptive Statistics
  • 02-19-2015 Slope Formula
  • 01-15-2015 Interactive Midpoint Formula
  • 12-18-2014 Triangle Sum Puzzle
  • 12-02-2014 The Bridge Crossing Problem
  • 11-26-2014 Magical Squares Game
  • 11-07-2014 QR Decomposition
  • 09-12-2014 The A* Algorithm
  • 08-06-2014 Naive Bayesian Classification