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

 

热门文章

优秀文章