【转载】数组循环右移K位

1220阅读 0评论2015-04-17 ville_lee
分类:LINUX

三次反转算法:

    VU=reverse(reverse(U)reserve(V)),写成数学形式就是:

                 。

    

考虑一下数组A中元素123456循环右移2位到底是怎么个情况!!!可不可以这样实现呢?将数组A分成两个部分:A[0~n-k-1] 和 A[n-k~n-1] ,将这两个部分分别翻转,然后放在一起在翻转(逆序)。具体是这样的:

(1)翻转1234:123456 ---> 432156

(2)翻转56:     432156 ---> 432165

(3)翻转432165:432165 ---> 561234

【转载】http://blog.csdn.net/jcwkyl/article/details/3874629

上一篇:Python TAB 自动补全
下一篇:KMP 详解