Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX_LEN 3000
- int a[MAX_LEN], b[MAX_LEN];
- void mergeSort(int l, int r)
- {
- if (l == r)
- return;
- int m = (l + r) / 2;
- mergeSort(l, m);
- mergeSort(m + 1, r);
- int i = l, j = m + 1, k = l;
- while (i <= m || j <= r)
- if (i > m || (j <= r && a[i] > a[j]))
- b[k++] = a[j++];
- else
- b[k++] = a[i++];
- for (i = l; i <= r; i++)
- a[i] = b[i];
- }
- int main(int argc, char const *argv[])
- {
- int i, n;
- printf("Number of elements: ");
- scanf("%d", &n);
- for (i = 0; i < n; i++)
- scanf("%d", &a[i]);
- mergeSort(0, n - 1);
- for (i = 0; i < n; i++)
- printf("%d ", a[i]);
- printf("\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment