add merge sort algorithm