Typically, formal algorithm courses begin with sorting b/c they provide an easy foundation for which to teach the fundamental concepts of asymptotic time complexity. It seems fitting to group all these algorithms into a single section in order to easily compare and contrast them.


It’s difficult to precisely define the origins of sorting algorithms. Donald Knuth’s The Art of Computer Programming, Volume 3 Sorting and Searching (p. 383) indicates that the first electronic sorting algorithms date back to the eponymous Hollerith tabulating machine that calculated statistics for the 1890 United Stated census. A sorting routine was the was the first program every written for a stored-program computer. (John von Neumann wrote merge sort for the EDVAC in 1945.

“Thus the history of sorting has been closely associated with many “firsts” in computing: the first data-processing machines, the first stored programs, the first software, the first buffering methods, the first work on algorithmic analysis and computational complexity” (The Art of Computer Programming, Volume 3 Sorting and Searching)

Source Code

Full Repo

Relevant Directories: