博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第2章 数字之魅——数组循环移位
阅读量:5175 次
发布时间:2019-06-13

本文共 1147 字,大约阅读时间需要 3 分钟。

数组循环移位

问题描述

分析与解法

  假如数组为abcd1234,循环右移4位的话,我们希望到达的状态是1234abcd。不妨设K是一个非负的整数,当K为负整数的时候,右移K位,想当于左移(-K)位。左移和右移在本质上是一样的。

【解法一】

 

详细代码如下:

1 package chapter2shuzizhimei.xunhuanyiwei; 2 /** 3  * 数组循环移位 4  * @author DELL 5  * 6  */ 7 public class XunHuanYiWei { 8     //移位算法,右移k位 9     public static void rightShift(double a[],int n, int k){10         k %= n;11         while(k!=0){12             double temp = a[n-1];13             for(int i=n-1;i>0;i--){14                 a[i]=a[i-1];15             }16             a[0] = temp;17             k--;18         }19     }20     public static void main(String[] args) {21         double a[] = {1,2,3,4,5,6};22         System.out.print("移位前的数组为:");23         for(int i=0;i

程序运行结果如下:

移位前的数组为:1.0 2.0 3.0 4.0 5.0 6.0 移位后的数组为:4.0 5.0 6.0 1.0 2.0 3.0

【解法二】

 

详细代码如下:

 

1 package chapter2shuzizhimei.xunhuanyiwei; 2 /** 3  * 数组循环移位 4  * 【解法二】 5  * @author DELL 6  * 7  */ 8 public class XunHuanYiWei2 { 9     //实现逆序10     public static void reverse(double a[], int b, int e){11         while(b

程序运行结果如下:

移位前的数组为:1.0 2.0 3.0 4.0 5.0 6.0 移位后的数组为:4.0 5.0 6.0 1.0 2.0 3.0

 

转载于:https://www.cnblogs.com/gaopeng527/p/4632112.html

你可能感兴趣的文章
查询数据库锁
查看>>
面试时被问到的问题
查看>>
注解小结
查看>>
201421410014蒋佳奇
查看>>
Xcode5和ObjC新特性
查看>>
CSS属性值currentColor
查看>>
Real-Time Rendering 笔记
查看>>
多路复用
查看>>
【UVA】434-Matty's Blocks
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
查看>>
awk变量
查看>>
mysql_对于DQL 的简单举例
查看>>
35. Search Insert Position(C++)
查看>>
[毕业生的商业软件开发之路]C#异常处理
查看>>