Consider 2 integer Arrays A and B .....
Software QA/Tests Interview Questions from Microsoft
(Continued from previous question...)
Consider 2 integer Arrays A and B .....
Question:
Consider 2 integer Arrays A and B. The elements in both arrays are arranged in ascending order. One of the arrays has exact sufficient space at the end to accommodate the other. Write a function to merge both arrays in ascending order and place it in the largest array.
maybe an answer:
void mergeArray(int* arr1, int n1, int* arr2, int n2)
{
int i, j, k;
i = n11;
j = n21;
k = n1+n21;
while(i>=0 && j>=0 && k >= 0)
{
if(arr1[i] >= arr2[j])
{
arr1[k] = arr1[i];
k; i;
}
else
{
arr1[k] = arr2[j];
k; j;
}
}
while(i>=0)
{
arr1[k] = arr1[i];
}
while(j>=0)
{
arr1[k] = arr2[i];
}
}
maybe an answer2:
public static void Merge(int[] A, int[] B)
{
if (A == null  B == null)
return;
if (A.Length > B.Length)
{
Merge(B, A, B.Length, A.Length  B.Length);
}
else
{
Merge(A, B, A.Length, B.Length  A.Length);
}
}
private static void Merge(int[] min, int[] max, int minCount, int maxCount)
{
int i = minCount  1, j = maxCount  1;
int m = max.Length  1;
while (i >= 0 && j >= 0)
{
if (min[i] > max[j])
{
max[m] = min[i];
i;
}
else
{
max[m] = max[j];
j;
}
m;
}
if (j == 1)
Array.Copy(min, max, i + 1);
(Continued on next question...)
Other Interview Questions
