* Merge sort is a divide and conquer algorithm, it divides the * input array into two halves and calls itself for the two halves * and then calls merge() to merge the two halves * * @param arr - array to be sorted * @param l - left index or start index of array * @param r - right index or end index of array * */