merge sort - a method of sorting an array within O(nlgn)