A collection of sorting algorithms for learning purposes