Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int merge(int temp[], int start, int mid, int end)
- {
- int i, j, k;
- int size1 = mid - start + 1;
- int size2 = end - mid;
- int templeft[size1], tempright[size2];
- for (i = 0; i < size1; i++)
- {
- templeft[i] = temp[start + i];
- }
- for (j = 0; j < size2; j++)
- {
- tempright[j] = temp[mid + 1+ j];
- }
- i = 0;
- j = 0;
- k = start;
- while (i < size1 && j < size2)
- {
- if (templeft[i] <= tempright[j])
- {
- temp[k] = templeft[i];
- i++;
- }
- else
- {
- temp[k] = tempright[j];
- j++;
- }
- k++;
- }
- while (i < size1)
- {
- temp[k] = templeft[i];
- i++;
- k++;
- }
- while (j < size2)
- {
- temp[k] = tempright[j];
- j++;
- k++;
- }
- }
- int mergesort(int temp[], int start, int end)
- {
- if (start < end)
- {
- int mid = start+(end-start)/2;
- mergesort(temp, start, mid);
- mergesort(temp, mid+1, end);
- merge(temp, start, mid, end);
- }
- }
- int main()
- {
- int n;
- scanf("%d",&n);
- int b[n],i=0;
- for(i=0; i<n; i++)
- {
- scanf("%d",&b[i]);
- }
- mergesort(b,0,n-1);
- printf(" \n");
- for(i=0; i<n; i++)
- {
- printf("%d ",b[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement