Insertion Sort - Part 2

  • + 0 comments

    Java solution :

             private static void print(int[] arr) {
            for (int j : arr) {
                    System.out.print(j + " ");
            }
            System.out.println();
    }
    
    private static void switchAndShift(int[] arr, int i, int j) {
            int sw = arr[i];
            for(int k=i-1 ; k>=j ; k--) {
                    arr[k+1] = arr[k];
            }
            arr[j] = sw;
    }
    
    public static void insertionSort2(int n, List<Integer> list) {
            int[] arr = new int[n];
            for(int i=0 ; i<n ; i++) {
                    arr[i] = list.get(i);
            }
    
            for(int i=1 ; i<n ; i++) {
                    for(int j=0 ; j<i ; j++) {
                            if(arr[j] > arr[i]) {
                                    switchAndShift(arr, i, j);
                                    break;
                            }
                    }
                    print(arr);
            }
    }