数组循环移位

来源:互联网 发布:mac怎么删除双系统 编辑:程序博客网 时间:2024/06/06 16:42

思路就不说了,好的代码一下就能看出思路

代码:

public class LoopMove {public static void main(String[] args) {// TODO Auto-generated method stubint arr[] = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };int n = 8, k = 4;RightShift(arr, n, k);for (int i = 0; i < arr.length; i++) {System.out.printf("%d ", arr[i]);}}private static void RightShift(int[] arr, int n, int k) {// TODO Auto-generated method stubk %= n;Reverse(arr, 0, n - k - 1);        Reverse(arr, n - k, n - 1);Reverse(arr, 0, n - 1);}private static void Reverse(int[] arr, int i, int j) {// TODO Auto-generated method stubfor (; i < j; i++, j--) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}

测试结果:



0 0