假设要把数组序列为12345678右移两位变为78123456,比较移位前后数组序列的形式,不难看出,其中有两段序列的顺序是不变的,即78和123456,可以把这两段看作两个整体,右移k位就是把数组的两部分交换一下。鉴于此,可以设计这样一种算法,步骤如下(以数组序列12345678为例):
1)逆序数组子序列123456,数组序列的形式变为65432178.
2)逆序数组子序列78,数组序列的形式变为65432187
3)全部逆序,数组序列的形式变为78123456.
程序代码如下:
package test;
public class Test{
public static void reverse(int[] a,int b,int e){
for(;b
时间复杂度为O(n)