已知在一维数组A[m+n]中依次存放着两个线性表(a1,a2,a3,…am)和(b1,b2,b3,…bn)。试编写一个函数,将数组中两个顺序表的位置互换,即(b1,b2,b3,…bn)在(a1,a2,a3,…am)前面。
public static int [] reverse(int []A,int left,int right){
int tmp;
while(left<right){
tmp = A[left];
A[left] = A[right];
A[right] = tmp;
left++;
right--;
}
return A;
}
//先整体逆置,再分块逆置
reverse(A,0,m+n-1);
reverse(A,0,n-1);
reverse(A,n,m+n-1);