a collection of sorting algorithms