sorting algorithms by pumpkinhead