給一個數組 a[n] = {0, 1, 2, 3, 4, 5, 6} 一個k=3 // 將 a[n]變為 a[n] = {3, 4, 5, 6, 0, 1, 2}
// 給一個數組 a[n] = {0, 1, 2, 3, 4, 5, 6} 一個k=3
// 將 a[n]變為 a[n] = {3, 4, 5, 6, 0, 1, 2}
// 具體的算法是
// 先將 a[n] 變為{2, 1, 0, 6, 5, 4, 3}
// 再把 a[n] 逆轉了
void swap(int *a, int *b)
{
int t = *a;
*a = *b;
*b = t;
}
void resv(int* a, int start, int end)
{
end = end-1;
while(start < end)
{
swap(a+start, a+end);
start--, ed--;
}
}
void resver(int *a, int size, int k)
{
resv(a, 0, k);
resv(a, k, size);
resv(a, 0, size);
}