a = {1,2,3,10}
b= {4,5,6,7}
c= merge a and b = {1,2,3,4,5,6,7,10}
2. Implementation
// Assume a has a large enough buffer
//
public void merge( int[] a , int[] b, int m , int n)
{
//validate the input
// if ( a!=null && b==null )
// return;
// if ( a )
// a == null
// b == null
int k = m + n -1;
int i = m - 1;
int j = n - 1;
while ( i >= 0 && j >= 0 )
{
if ( a[i] > b[j] )
{
a[k--] = a[i--];
}
else
{
a[k--] = b[j--];
}
}
while ( j >= 0 )
{
a[k--] = b[j--];
}
}
3. Similar ones
No comments:
Post a Comment