问题描述:
将[First, Middle) 内的元素和 [Middle, Last) 内的元素交换。
算法分析:
(1)旋转——辗转相除法
First = A, Middle = D, Last = H
Case: A B C D E F G H
Step: D->A, G->D, B->G, E->B, H->E, C->H, F->C
Result: D E F G H A B C
(2)旋转——分段翻转,归纳
First = A, Middle = D, Last = H
Case: A B C D E F G H
Step: C B A D E F G H
C B A H G F E D
D E F G H A B C
Result: D E F G H A B C
(3)旋转——迭代
First = A, Middle = D, Last = H
Case: A B C D E F G H
Step: D E F A B C G H
D E F G H C A B
D E F G H A C B
D E F G H A B C
Result: D E F G H A B C