功能描述:数组的循环移位,
输入:{a,b,c},2
输出:{b,c,a}
package 华为机试题;
/**
* @author Hutongling
*
* @time:2017年4月8日 下午9:11:32
*/
public class 数组的循环移位 {
static char[] arrayMove(char[] data,int length){
if(data==null || data.length==0 || length>data.length || length<0)
return null;
char temp=0;
//先整体翻转
for(int i=0;i<data.length/2;i++){
temp=data[i];
data[i]=data[data.length-i-1];
data[data.length-i-1]=temp;
}
//前半部分翻转
for(int i=0;i<(data.length-length)/2;i++)
{
temp=data[i];
data[i]=data[data.length-i-length-1];
data[data.length-i-length-1]=temp;
}
//后半部分翻转
for(int i=data.length-length,j=0;i<data.length-length /2;i++,j++){
temp=data[i];
data[i]=data[data.length-j-1];
data[data.length-j-1]=temp;
}
return data;
}
public static void main(String[] args) {
char data[]={'a','b','c','d','e'};
int length=2;
char[] result=arrayMove(data,length);
for(int i=0;i<data.length;i++)
System.out.print(result[i] + " ");
}
}
代码结果:
c d e a b