Я хочу сделать вращение массива с использованием временного массива и ниже код для него? Есть ли лучший способ сделать это с помощью временного массива? - PullRequest
0 голосов
/ 11 ноября 2019

Здесь я вращаю массив с помощью некоторого временного массива.
Есть ли другой лучший способ улучшить приведенный ниже код для вращения массива? Я новичок в структурах данных, и как мне определить временную сложность такого кода?

class Arrayrotation {
        public int[] inserttemp(int b[], int move, int len) {
            int c[] = new int[move];
            for (int i = 0; i < move; i++) {
                c[i] = b[i];
                //System.out.println(c[i]);
            }
            return c;

        }

        public int[] rotate(int b[], int move, int len, int d[]) {
            int orglen = move;
            int[] a = new int[len - orglen];
            int k = 0;
            for (int i = 0; i < b.length; i++) {
                if (move < b.length) {
                    b[i] = b[move++];
                } else if (move >= b.length) {
                    b[i] = d[k++];
                }

            }
            System.out.println(Arrays.toString(b));
            return b;
        }
        public static void main(String args[]) {
            Arrayrotation a = new Arrayrotation();
            int[] b = { 1,2,3,4,5,6,7,8,9};
            int rotate = 3;
            int[] d;
            int[] f;
            d = a.inserttemp(b, rotate, b.length);
            a.rotate(b, rotate, b.length, d);


        }
    }

1 Ответ

0 голосов
/ 11 ноября 2019
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] + " ");    
    }    
 }    
}
  • Исходный массив: 1 2 3 4 5
  • Массив после вращения вправо: 3 4 5 1 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...