Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define MAX_ARR_SIZE 3000
- #define MAX_STR_LEN 100
- char a[MAX_ARR_SIZE][MAX_STR_LEN],
- b[MAX_ARR_SIZE][MAX_STR_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 && strcmp(a[i], a[j]) > 0))
- strcpy(b[k++], a[j++]);
- else
- strcpy(b[k++], a[i++]);
- for (i = l; i <= r; i++)
- strcpy(a[i], b[i]);
- }
- int main(int argc, char const *argv[])
- {
- int i, n;
- printf("Number of lines to sort: ");
- scanf("%d", &n);
- for (i = 0; i < n; i++)
- scanf("%s", a[i]);
- mergeSort(0, n - 1);
- printf("\n");
- for (i = 0; i < n; i++)
- printf("%s\n", a[i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment