There is an array of integers and there is a number M,the output required is a sorted array with the following property:
(arr[i]%M,arr[i]/M),i.e first a sort on the arr[i]%M is required , then apply another sort on similar arr[i]%M values by their arr[i]/M values.
I know that a custom sort function can be created like this:
sort(arr,arr+n,comp)//comp is a customized object.
you want the values to be sorted by arr[i]%m
, and if two values are equal then you want to sort by arr[i]/m
.
bool cmp(int a,int b)
{
if(a%m < b%m)
return true;
if(a%m > b%m)
return false;
return a/m < b/m;
}
See here for a working example.