Counting Inversions - Merge

The merge step that counts inversions.

Merge step counts cross-inversions while merging sorted halves. When R[j]<L[i]R[j] < L[i], all remaining LL elements form inversions with R[j]R[j]. Add L.length - i to count.

while i < L.length and j < R.length:
    if L[i] <= R[j]:
        arr[k] = L[i]; i++
    else:
        arr[k] = R[j]
        inversions += L.length - i
        j++
    k++

Copy remaining elements after the loop.