ab_tanjir

Untitled

Aug 30th, 2019
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 KB | None | 0 0
  1. void merge(int [], int, int [], int, int []);
  2.  
  3. int main() {
  4.   int a[100], b[100], m, n, c, sorted[200];
  5.  
  6.   printf("Input number of elements in first array\n");
  7.   scanf("%d", &m);
  8.  
  9.   printf("Input %d integers\n", m);
  10.   for (c = 0; c < m; c++) {
  11.     scanf("%d", &a[c]);
  12.   }
  13.  
  14.   printf("Input number of elements in second array\n");
  15.   scanf("%d", &n);
  16.  
  17.   printf("Input %d integers\n", n);
  18.   for (c = 0; c < n; c++) {
  19.     scanf("%d", &b[c]);
  20.   }
  21.  
  22.   merge(a, m, b, n, sorted);
  23.  
  24.   printf("Sorted array:\n");
  25.  
  26.   for (c = 0; c < m + n; c++) {
  27.     printf("%d\n", sorted[c]);
  28.   }
  29.  
  30.   return 0;
  31. }
  32.  
  33. void merge(int a[], int m, int b[], int n, int sorted[]) {
  34.   int i, j, k;
  35.  
  36.   j = k = 0;
  37.  
  38.   for (i = 0; i < m + n;) {
  39.     if (j < m && k < n) {
  40.       if (a[j] < b[k]) {
  41.         sorted[i] = a[j];
  42.         j++;
  43.       }
  44.       else {
  45.         sorted[i] = b[k];
  46.         k++;
  47.       }
  48.       i++;
  49.     }
  50.     else if (j == m) {
  51.       for (; i < m + n;) {
  52.         sorted[i] = b[k];
  53.         k++;
  54.         i++;
  55.       }
  56.     }
  57.     else {
  58.       for (; i < m + n;) {
  59.         sorted[i] = a[j];
  60.         j++;
  61.         i++;
  62.       }
  63.     }
  64.   }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment