如何把一个数组循环右移k位

来源:互联网 发布:闪电侠第三季人工智能 编辑:程序博客网 时间:2024/05/16 07:03

假设要把数组序列为12345678右移两位变为78123456,比较移位前后数组序列的形式,不难看出,其中有两段序列的顺序是不变的,即78和123456,可以把这两段看作两个整体,右移k位就是把数组的两部分交换一下。鉴于此,可以设计这样一种算法,步骤如下(以数组序列12345678为例):

1)逆序数组子序列123456,数组序列的形式变为65432178.

2)逆序数组子序列78,数组序列的形式变为65432187

3)全部逆序,数组序列的形式变为78123456.

程序代码如下:


时间复杂度为O(n)

0 0
原创粉丝点击