Selectsort1

Das zu sortierende Array wird von hinten nach vorne durchlaufen. Eine zweite Schleife läuft innerhalb der ersten vom zweiten Index des Arrays bis zur Zählvariablen der äußeren Schleife. Ähnlich wie bei Simplesort wird also ein Rest-Teilbereich des Arrays von vorne her durchlaufen. Eine Hilfsvariable speichert den Index falls der Wert des indizierten Elementes größer ist als der beim vorhergehenden Durchlauf indizierte. Der Wert des durch die äußere Schleife indizierten Elementes wird dann mit dem des neu ermittelten getauscht.

public class Selectsort {

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

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

    public static void main(String[] args) {
        Selectsort ss = new Selectsort();
        int[] arr = ss.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.