Java实现右旋转数组元素
1 说明
在此程序中,我们需要将数组的元素向右旋转指定的次数。如果将数组的所有元素向右移动一个位置,则称该数组为右旋转。一种方法是通过将数组的每个元素移至其下一个位置来遍历数组。数组的最后一个元素将成为旋转数组的第一个元素。
考虑上面的数组,如果n为1,则该数组的所有元素将向右移一个位置,即该数组的第一个元素将占据第二个位置,第二个元素将移至第三个位置,很快。数组的最后一个元素将成为数组的第一个元素。
2 算法思路
- 步骤1:开始
- 步骤2:初始化arr [] = {1、2、3、4、5}。
- 步骤3: SET n = 3
- 步骤4:打印「Original Array」
- 步骤5:重复步骤6直到i <arr.length
// for(i = 0; i <arr.length; i ++) - 步骤6:列印arr [i]
- 步骤7:将步骤8重复到步骤12直到i <n
// for(i = 0; i <n; i ++) - 步骤8:定义j,最后。
- 步骤9: last = arr [arr.length-1]
- 步骤10:重复步骤11直到j> 0
// for(j = arr.length-1; j> 0; j--) - 步骤11: arr [j] = arr [j-1]
- 步骤12: arr [0] =最后
- 步骤13:打印“Array after right rotation”
- 步骤14:重复步骤15直到i <arr.length
// for(i = 0; i <arr.length; i ++) - 第15步:打印arr [i]
- 步骤16:结束
3 程序实现
/**
* 一点教程网: http://www.yiidian.com
*/
class RotateRight {
public static void main(String[] args) {
//Initialize array
int [] arr = new int [] {1, 2, 3, 4, 5};
//n determine the number of times an array should be rotated.
int n = 3;
//Displays original array
System.out.println("Original array: ");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
//Rotate the given array by n times toward right
for(int i = 0; i < n; i++){
int j, last;
//Stores the last element of array
last = arr[arr.length-1];
for(j = arr.length-1; j > 0; j--){
//Shift element of array by one
arr[j] = arr[j-1];
}
//Last element of array will be added to the start of array.
arr[0] = last;
}
System.out.println();
//Displays resulting array after rotation
System.out.println("Array after right rotation: ");
for(int i = 0; i< arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
以上代码输出结果为:
Original Array:
1 2 3 4 5
Array after right rotation:
3 4 5 1 2
热门文章
优秀文章