Inversion (discrete mathematics): Difference between revisions

Content deleted Content added
Line 84:
TopDownMergeSort(A[], B[], n)
{
int inversions;
CopyArray(A, 0, n, B); // duplicate array A[] into B[]
 
TopDownSplitMerge(B, 0, n, A); // sort data from B[] into A[]
CopyArray(A, 0, n, B); // duplicate array A[] into B[]
inversions=TopDownSplitMerge(B, 0, n, A); // sort data from B[] into A[]
 
printf("The total number of inversions is: %d\n", inversions);
}
 
Line 95 ⟶ 99:
 
if(iEnd - iBegin < 2) // if run size == 1
return; // consider it sorted
// split the run longer than 1 item into halves
iMiddle = (iEnd + iBegin) / 2; // iMiddle = mid point