//算法思想:先将數組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;
}