关闭

数组循环移位

120人阅读 评论(0) 收藏 举报
分类:

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

代码:

public class LoopMove {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int 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 stub
		k %= 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 stub
		for (; i < j; i++, j--) {
			int temp = arr[i];
			arr[i] = arr[j];
			arr[j] = temp;
		}
	}

}

测试结果:



0
0
查看评论

数组循环移位的几种解法

题目描述: 设计一个算法,把一个含有N个元素的数组循环右移K位。解法一: 最容易想到的就是每次将数组中的元素右移一位,循环K次。#include<iostream> using namespace std; void RightShift(in...
  • mayh554024289
  • mayh554024289
  • 2015-08-23 23:02
  • 4144

MATLAB学习笔记之-----数列的循环移位操作

有一组数列,比如a=[1 2 3 4 5 6 7],怎样能做出数列[7 1 2 3 4 5 6] ,[6 7 1 2 3 4 5]:   >> a=[1 2 3 4 5 6 7] a =      1 ...
  • u011650143
  • u011650143
  • 2017-05-10 13:52
  • 821

数组循环移位

<br /><br /> 数组循环移位          <br /> 对于存有N个整数的数组,将其向左循环移动k个位置,(x0, x1,……, xn-1)变换为(xk,...
  • baiwujushi
  • baiwujushi
  • 2010-06-04 13:18
  • 506

数组循环移位

设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。     K可能大于N,但对K%N就可。代码如下: reverse(int* arr,int b,int e){     for(...
  • xflame
  • xflame
  • 2013-08-18 16:35
  • 534

用java实现数组的循环逐步移位操作

用java实现数组的循环移位操作 设计一个类,并为其添加一个带有一个参数的构造函数,同时封装一个方法。当连续调用该方法时,依次产生下列元素输出   第一次调用输出: 5 7 4 8 9 1  第二次调用输出: 1 5 7 4 8 9   第三次调用输出: 9...
  • u010043538
  • u010043538
  • 2013-10-16 02:22
  • 3780

java实现循环左移和右移的简单算法

 byte a=112,用程序实现,将其循环左移三位和右移三位。112的二进制原码:0111 0000112循环左移3位后的二进制码:1000 0011112循环右移3位后的二进制码:0000 1110 先将循环左移的程序代码告诉大家:public class TestCircl...
  • lubiaopan
  • lubiaopan
  • 2009-11-17 21:08
  • 9018

C语言 数组循环左移问题

如有元素个数为n的序列: abcdefgh 要求循环左移 p位(如设置p=3),则要求操作后的序列从 abcdefgh 变为: defghabc 把 abc 设为序列A,defgh设为序列B 先将 A 逆置得到  cba 再将 B 逆置得到 hgfed 得到 cbahgfed 再...
  • u014453898
  • u014453898
  • 2017-09-01 15:19
  • 364

MATLAB 循环移位序列,二进制的按位循环右移/左移

(1)矩阵循环移位:circshift     例如:b = circshift(a,[x,y]) 其中a为待移位的矩阵,x表示上下移位位数(正数表示向下移位),y表示左右移位位数(正数表示向右移位) >> x = [1,2,3;4,5...
  • drrlalala
  • drrlalala
  • 2015-11-02 15:58
  • 5264

C语言实现数组的循环左移,右移,翻转

数组结合指针可以实现很多有趣的功能,比如下面这个程序:假设数组为 : 12345如果左移一次即为:23451 ,依次类推如果右移一次即为:51234 ,依次类推翻转则为:54321我们来实现下这个程序:#include #include #include #define NR(x) (si...
  • morixinguan
  • morixinguan
  • 2017-08-22 15:57
  • 1607

对fft循环移位的重新理解

对一组序列做fft变换。从表面上看,他们是无差别的。但是还是分为很多的类。任何东西都可以分类。当你发现都是一样的时候,说明你还没有进入他的核心。     在谈及fft变换之前,先看看fft变换的对象的性质。任何的序列都可以用实数和虚数表示。所以任何序列从某个角度上来划分,可以分...
  • gllnupt
  • gllnupt
  • 2015-01-25 21:29
  • 1666
    个人资料
    • 访问:47286次
    • 积分:1646
    • 等级:
    • 排名:千里之外
    • 原创:120篇
    • 转载:11篇
    • 译文:0篇
    • 评论:4条
    最新评论