import java.util.*;

class MySort
{
   //Array, welches die zu sortierenden Zahlen enthält.
   private int[] a;

   //Konstruktor der Klasse. Übergeben wird die
   //gewünschte Arraylänge. Es wird dann ein neues 
   //zufällig gefülltes Array dieser Länge angelegt.
   public MySort(int l)
   {
      a = new int[l];
      fillArray(a);
      randomPermutation(a);
   }

   //Diese Methode sortiert das übergebene Array
   //mit dem Algorithmus InsertionSort
   private void performInsertionSortOn(int[] f)
   {
      for(int i = 1; i < f.length; i++)
      {
         //Suche Position fuer Element f[i]
         for(int j = i; j > 0; j--)
         {
            //Test, ob Tausch noetig
            if(f[j] < f[j-1])
            {
               int h  = f[j];
               f[j]   = f[j-1];
               f[j-1] = h;
            }
            else {break;}
         }
      }
   }

   //Diese Methode permutiert die Elemente im Array
   //zufällig.
   private void randomPermutation(int[] a)
   {
      //einen neuen Zufallszahlengenerator anlegen
      Random gen = new Random();

      for(int i = a.length-1; i > 0; i--)
      {
         //Element fuer Position i zufaellig waehlen
         int p = gen.nextInt(i+1);
         
         //Elemente an Positionen p und i tauschen
         int h = a[i];
         a[i]  = a[p];
         a[p]  = h;
      }
   }

   //Diese Methode füllt ein Array der Länge n
   //mit den Elementen 0,1,2,...,n-1
   private void fillArray(int[] a)
   {
      for(int i = 0; i < a.length; i++){a[i] = i;}
   }
}
