Insertsort1

Ein Array wird von vorne nach hinten durchlaufen. Bei jedem Durchlauf wird das Array wiederum in der entgegengesetzten Richtung, von hinten nach vorne durchlaufen. Ist der Wert eines niedrigeren Elementes höher als derjenige eines höheren Elementes, werden beide Elemente getauscht. Nach Durchlauf der äußeren Schleife sind alle Werte überprüft worden und das Array ist aufsteigend sortiert.

public class Insertsort {

    public int[] intArr = { 16, 23, 14, 7, 21, 20, 6, 1, 17, 13, 12, 9, 3, 19 };

    public int[] sort() {
        int k;
        for (int i = 0; i < intArr.length; i++) {
            for (int j = intArr.length-1; j > 0; j--) {
                if (intArr[j-1] > intArr[j]) {
                    k = intArr[j];
                    intArr[j] = intArr[j - 1];
                    intArr[j - 1] = k;
                }
            }
        }
        return intArr;
    }

    public static void main(String[] args) {
        Insertsort is = new Insertsort();
        int[] arr = is.sort();
        for (int i = 0; i < arr.length; i++) {
            System.out.println(i + 1 + ": " + arr[i]);
        }
    }
}

1) Der hier gezeigt Algorithmus entstammt im Original der Seite http://www.sortieralgorithmen.de und wurde lediglich in Java transkribiert.