/** Funktion: Insertion-Sort, Sortieren durch direktes Einfügen
    Applikation ohne Oberfläche, läuft in der Dos-Box:  "java insert"
    @author  DG1XPZ
    @version JDK131
*/

class insert{

  static int[] zahlen={9,5,8,6,3,7,4,0,1,2};  //Array "zahlen" deklarieren und befüllen

  public static void main(String[] vArgs){
    insert in = new insert();    //Instanz von der Klasse "insert" erzeugen
    zahlen=in.sort(zahlen);      //Feld "zahlen" sortieren
    System.out.println(in.toString());  //Feld "zahlen" ausgeben
  }

  /** Funktion: Sortieren eines Arrays nach der Insertion-Sort-Methode
      @param array Das zu sortierende Array
      @return      Rückgabe des sortierten Arrays
  */
  public int[] sort(int[] z){
    for(int i=1;i<z.length;i++){
      int h=z[i];
      int j=i;
      while(j>0 && z[j-1]>h){
        z[j]=z[j-1];
        j--;
      }
      z[j]=h;
    }
    return z;    //Rückgabe des sortieren Arrays
  }//public int[] sort(int[] z)

  /** Funktion: Den Inhalt eines 1-Dimensionalen Arrays zu einem String zusammenfügen
      @return      Rückgabe des zusammengefügten Strings
  */
  public String toString(){
    String s="";
    for(int i=0;i<zahlen.length;i++){
      s=s+zahlen[i]+", ";   //sortierte Zahlen zum String hinzufügen + Komma
    }
    s=s+"\n";          //Zeilenumbruch hinzufügen
    return s;          //Rückgabe des zusammengefügten Strings
  }//public String toString()

}//class insert
