/* 
 * Funcao que resolve uma variante do problema 5.9
 * Esta funcao intercala os vetores ordenados a[] e b[] e
 * coloca o resultado em c[]
 */

/*
 * This code is from "Algorithms in C, Third Edition,"
 * by Robert Sedgewick, Addison Wesley Longman, 1998
 * (com pequenas modificacoes)
 */

void merge(int c[], int a[], int n, int b[], int m)
{
    int i, j, k;
    for (i = 0, j = 0, k = 0; k < n + m; k++) {
	if (i == n)
	  { c[k] = b[j]; j++; continue; }
	if (j == m)
	  { c[k] = a[i]; i++; continue;	}
	if (a[i] < b[j])
	  { c[k] = a[i]; i++; }
	else
	  { c[k] = b[j]; j++; }
    }
}
