merge sort
multithreaded version