Search This Blog

Sunday, April 13, 2014

Algorithms - Sorting - Correctness and the Loop Invariant

Correctness and the Loop Invariant

The following is the solution to Hacker Rank problem Correctness and the Loop Invariant using Java.  For solutions to other Hacker Rank Problem visit my page HackerRank, alternatively try searching for the problem in my blog.

The required condition for correctness of the loop invariant is to have "less than or equal to zero
"(<= 0) condition highlighted in the below code.

Score: 15/15
/**
 *
 */


import java.util.Scanner;

/**
 * @author Arun.G
 *
 */
public class Solution{

       /**
        * @param args
        */
        public static void insertionSort(int[] A){
                for(int i = 1; i < A.length; i++){
                  int value = A[i];
                  int j = i - 1;
                  while(j >= 0 && A[j] > value){
                    A[j + 1] = A[j];
                    j = j - 1;
                  
                  }
                  A[j + 1] = value;
                }
                     
                      printArray(A);
              }

                 
                  static void printArray(int[] ar) {
                       for(int n: ar){
                          System.out.print(n+" ");
                       }
                    }
              public static void main(String[] args) {
                         Scanner in = new Scanner(System.in);
                         int n = in.nextInt();
                         int[] ar = new int[n];
                         for(int i=0;i<n;i++){
                            ar[i]=in.nextInt();
                         }
                         insertionSort(ar);
                         in.close();
                     }   

}

No comments:

Post a Comment

Labels