将数组循环右移k位
2015-10-23 10:24
423 查看
将数组移位就相当于将两部分序列交换位置,于是将数组移位转换为三次反转操作,如123456右移2位结果为561234,过程:分别将1234和56反转为4321和65,之后对反转结果432165做一次反转结果为561234,java代码如下:
//将数字数组循环右移k位 public class shuzuxiwei { public static void yiwei(int k,int[] a) { int len=a.length; k=k%len; jiaohuan(0,len-k-1,a); jiaohuan(len-k,len-1,a); jiaohuan(0,len-1,a); } private static void jiaohuan(int i, int j, int[] a) { // TODO Auto-generated method stub while(i<j) { int t=a[i]; a[i]=a[j]; a[j]=t; i++; j--; } } public static void main(String[] args) { int[] a={1,2,3,4,5,6,7}; yiwei(12,a); for(int i=0;i<7;i++) System.out.println(a[i]); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- [Android]在代码里运行另一个程序的方法
- 插入排序
- 冒泡排序
- 堆排序