public class Insertion
{
   public static int sort(double[] a) 
   {
      int N = a.length;
      int cnt = 0;
      for (int i = 0; i < N; i++)
         for (int j = i; j > 0; j--)
         {
             cnt++;
             if (less(a, j, j-1)) exch(a, j, j-1);
             else                 break;
         }
      return cnt;
   }
    private static boolean less(double[] a, int i, int j)
    {   return (a[i] < a[j]);   }
        
    private static void exch(double[] a, int i, int j) 
    {
        double swap = a[i];
        a[i] = a[j];
        a[j] = swap;
    }

   public static void main(String args[]) 
   {
      int N = Integer.parseInt(args[0]);
      double[] a = new double[N];
      for (int i = 0; i < N; i++)
         a[i] = Math.random();
      Animate.initialize(a);
      StdOut.println(sort(a) +  " comparisons");
   }
}

