Java数组之间的左移和右移
public class 左移一位{
public static void main(String[] args) {
int arr[] = new int[9];
for (int i = 0; i < arr.length; i++) {
arr[i]=i+1;
}
// 第一位保存在t中
int t = arr[0];
// 向左移一位
for (int j = 0; j < arr.length - 1; j++) {
arr[j] = arr[j + 1];
}
// 第一位移动到最后一位
arr[arr.length - 1] = t;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
public class 右移一位{
public static void main(String[] args) {
int arr[] = new int[9];
for (int i = 0; i < arr.length; i++) {
arr[i] = i + 1;
}
// 最后一位保存在t中
int t = arr[arr.length - 1];
// 向右移一位
for (int j = arr.length - 1; j > 0; j--) {
arr[j] = arr[j - 1];
}
// 最后一位移动到第一位
arr[0] = t;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
同理,如果要移动n位。
public class 左移n位{
public static void main(String[] args) {
int arr[] = new int[9];
for (int i = 0; i < arr.length; i++) {
arr[i]=i+1;
}
// 向左移2位
for (int i = 0; i < 2; i++) {
// 第一位保存在t中
int t = arr[0];
for (int j = 0; j < arr.length - 1; j++) {
arr[j] = arr[j + 1];
}
// 第一位移动到最后一位
arr[arr.length - 1] = t;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
public class 右移n位{
public static void main(String[] args) {
int arr[] = new int[9];
for (int i = 0; i < arr.length; i++) {
arr[i]=i+1;
}
// 向右移2位
for (int i = 0; i < 2; i++) {
// 最后一位保存在t中
int t = arr[arr.length-1];
// 向右移一位
for (int j = arr.length - 1; j >0; j--) {
arr[j] = arr[j-1];
}
// 最后一位移动到第一位
arr[0] = t;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}