Java向左旋转数组的元素
在此程序中,我们需要将数组的元素向左旋转指定的次数。在向左旋转时,数组的每个元素将向左移动一个位置,并且数组的第一个元素将添加到列表的末尾。此过程将执行指定的次数。
考虑数组上方,如果n为1,则该数组的所有元素将向左移动一个位置,这样数组的第二个元素将取第一个位置,第三个元素将移动到第二个位置,依此类推。数组的第一个元素将添加到数组的最后一个元素。
算法
步骤1: 初始化 arr[] = {1、2、3、4、5}。
步骤2: SET n = 3
步骤3: 打印"原始数组"
步骤4: 对for(i=0; i < arr.length; i++)重复步骤5
步骤5: 打印arr[i]
步骤6: for(i = 0; i < n; i++)重复步骤8至步骤11
步骤7: 定义j,first。
步骤8: first = arr[0]
步骤9: for(j= 0; j<arr.length-1; j++)重复步骤11
步骤10: arr[j] = arr [j + 1]
步骤11: arr[j]= arr[j+1]
步骤12: 打印"左旋转后的数组"
步骤13: for(i=0; i < arr.length; i++)重复步骤15
步骤14: 打印arr[i]
程序:
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