Skip to content

Instantly share code, notes, and snippets.

@a-mishra
Last active July 29, 2017 21:28
Show Gist options
  • Select an option

  • Save a-mishra/69f562a90728cdedddbd1b17b38bb807 to your computer and use it in GitHub Desktop.

Select an option

Save a-mishra/69f562a90728cdedddbd1b17b38bb807 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
void shellSort(int *arr, int n)
{
int gap;
for (gap = n/2; gap > 0; gap /= 2)
{
int i;
for (i = gap; i < n; i += 1)
{
int temp = arr[i];
int j;
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap)
arr[j] = arr[j - gap];
arr[j] = temp;
}
}
}
int main()
{
int t, n, smin, smax, i, j, k;
scanf("%d", &t);
for(i=0;i<t;i++){
scanf("%d",&n);
int *arr = (int *)malloc(n*sizeof(int));
for(j=0;j<n;j++)
scanf("%d", &arr[j]);
shellSort(arr, n);
smin=0;
smax=0;
for(k=0;k<=n-2;k+=2)
smin+=abs(arr[k+1]-arr[k]);
for(k=0;k<n/2;k++)
smax+=abs(arr[k]-arr[n-k-1]);
printf("%d %d\n", smin, smax);
free(arr);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment