Java实现左旋转数组元素
1 说明
在此程序中,我们需要将数组的元素向左旋转指定的次数。在向左旋转时,数组的每个元素将向左移动一个位置,并且数组的第一个元素将添加到列表的末尾。此过程将执行指定的次数。
考虑上面的数组,如果n为1,则该数组的所有元素将向左移动一个位置,这样该数组的第二个元素将位于第一个位置,第三个元素将移动至第二个位置,依此类推。数组的第一个元素将添加到数组的最后一个元素。
2 算法思路
- 步骤1:开始
- 步骤2:初始化arr [] = {1、2、3、4、5}。
- 步骤3: SET n = 3
- 步骤4:列印「Original Array」
- 步骤5:对(i = 0; i <arr.length; i ++)重复步骤6
- 步骤6:列印arr [i]
- 步骤7:针对(i = 0; i <n; i ++),重复步骤8至步骤12
- 步骤8: 首先定义j。
- 步骤9: first = arr [0]
- 步骤10:对(j = 0; j <arr.length-1; j ++)重复步骤11
- 步骤11: arr [j] = arr [j + 1]
- 步骤12: arr [j] =首先
- 步骤13:打印“Array after left rotation”
- 步骤14:对(i = 0; i <arr.length; i ++)重复步骤15
- 第15步:打印arr [i]
- 步骤16:结束
3 程序实现
/**
* 一点教程网: http://www.yiidian.com
*/
class RotateLeft {
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 left
for(int i = 0; i < n; i++){
int j, first;
//Stores the first element of the array
first = arr[0];
for(j = 0; j < arr.length-1; j++){
//Shift element of array by one
arr[j] = arr[j+1];
}
//First element of array will be added to the end
arr[j] = first;
}
System.out.println();
//Displays resulting array after rotation
System.out.println("Array after left rotation: ");
for(int i = 0; i< arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
以上代码输出结果为:
Original Array:
1 2 3 4 5
Array after left rotation:
4 5 1 2 3
热门文章
优秀文章