Skip to content

Neelancy1504/BackTracking_CountInversions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

long merge(vector&arr , vector&temp , int start , int mid , int end){ int i = start , j= mid +1 , k= start ; long c = 0; while(i <= mid && j<= end){ if(arr[i] <= arr[j]) temp[k++] = arr[i++];

    else{
        temp[k++] = arr[j++];
        c += mid -i +1;
    }
}
while( i <= mid){
    temp[k++] = arr[i++];
}

while( j <= end){
    temp[k++] = arr[j++];
}

while(start <= end){
    arr[start] = temp[start];
    start ++;
}
return c;

}

long mergeSort(vector&arr , vector&temp , int start , int end){ if(start >= end) return 0; int mid = start +(end - start)/2; long c = 0; c += mergeSort(arr ,temp , start , mid); c += mergeSort(arr ,temp , mid+1 , end); c += merge(arr ,temp , start , mid ,end);

return c;

}

long countInversions(vector arr) { long c = 0; //inversion count vector temp(arr.size() , 0); c = mergeSort(arr,temp,0,arr.size()-1); return c;

}

About

BackTracking_CountInversions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published