//算法思想:先将数组A[m+n]的全部元素原地逆置,再对前m和后n个元素分别逆置
bool Reverse(SqList& A, int left, int right) {
if (left >= right || right > A.length || A.length <= 0)//取值范围
{
return false;
}
int i = 0, j = 0, p = 0, k = 0;
int mid = (left + right) / 2;
for (int i = 0; i <= mid-left; i++)//前后两两交换
{
int temp = A.data[left + i];
A.data[left + i] = A.data[right - i];
A.data[right - i] = temp;
}
return true;
}
bool Exchange(SqList& A, int m, int n)
{
Reverse(A, 0, m + n - 1);
Reverse(A, 0, n - 1);
Reverse(A, n, m + n - 1);
return true;
}