Selectionsort: Implementierung in Java

Die folgende Implementierung implementiert die abstrakte Klasse Sortierer die in den Beispielprogrammen zum Sortieren zu finden ist.

Implementierung: Klasse SelectionSort

package s2.sort;
/**
 *
 * @author sschneid
 * @version 2.0
 */
public class SelectionSort extends Sortierer{
    /**
     * Konstruktor: Akzeptiere ein Feld von int. Reiche
     * das Feld an die Oberklasse weiter.
     * Der Algorithmus ist nicht parallel (false Argument)
     * @param s
     */
    public SelectionSort(int[] s) {super(s,false);}
    /**
     * sortiert ein Eingabefeld s und gibt eine Referenz auf dea Feld wieder
     * zurück
     * @param s ein unsortiertes Feld
     * @return ein sortiertes Feld
     */
    @Override
    public void sortieren(int startIndex, int endeIndex){
        //geschwaetzig=true;
        int minimumIndex;
        for (int unteresEnde=startIndex; unteresEnde<endeIndex; unteresEnde++) {
            minimumIndex = unteresEnde; //Vergleichswert
            // Bestimme Position des kleinsten Element im Intervall
            for (int j=unteresEnde+1; j<=endeIndex; j++) {
                if (istKleiner(j,minimumIndex)) {
                    minimumIndex=j; // neuer Kandidat
                }
            }
            // Tausche kleinstes Element an den Anfang des Intervalls
            tausche(unteresEnde,minimumIndex);
            // das kleinste Element belegt jetzt das untere Ende des Intervalls
         }
    }
    /**
     * Liefert den Namen des SelectionSorts
     * @return
     */
    @Override
    public String algorithmus() {return "Sortieren durch Auswahl";}
}

 

Anonymous (not verified)

Mon, 06/20/2016 - 13:26

Wenn Sie

tausche(unteresEnde,minimumIndex);

zum Tauschen verwenden, brauchen wir keine Variable:

int temp; // Hilfsvariable zum Tauschen

.

Stefan Schneider

Mon, 06/20/2016 - 19:15

In reply to by Anonymous (not verified)

Variable wurde gelöscht.
Weniger Code.
Schnelleres Programm
Weniger Fehlerquellen
Einfacher zu verstehen.

Gut beobachtet. Danke