Last active
October 13, 2015 01:48
-
-
Save inhji/4120461 to your computer and use it in GitHub Desktop.
Select Sort
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.ArrayList; | |
import java.util.Arrays; | |
public class selectsort { | |
/** | |
* | |
* Select Sort | |
* | |
* Ein Feld wird einmal vollständig durchlaufen. Dabei wird durch einfache Vergleiche das größte Element herausgesucht | |
* (selektiert) und zum Schluss an das Feldende gepackt. Dieser Schritt wird nun mit dem kleineren Teilfeld (Feld ohne | |
* das letzte Element) wiederholt und wiederholt und ... Und irgendwann sind wir fertig und die Elemente sind sortiert. | |
* Aufgrund der Auswahl von Elementen wird dieses Verfahren auch als "Sortierung durch Auswahl" bezeichnet. | |
* | |
*/ | |
public static void main(String[] args) { | |
ArrayList<Integer> Zahlen = new ArrayList<Integer>(Arrays.asList(1,1,1,4,3,99,5,8,99999,2,45,467,747,75)); | |
System.out.println("Unsortierte Liste:"); | |
System.out.println(Zahlen.toString()); | |
System.out.println(" "); | |
System.out.println("Sortierte Liste:"); | |
System.out.println(selectSort(Zahlen, true).toString()); | |
} | |
private static ArrayList<Integer> selectSort(ArrayList<Integer> list, Boolean verbose) { | |
int listSize = list.size(); | |
// Schleife läuft einmal für jedes Element der Liste | |
for (int j = 0; j < list.size(); j++, listSize--){ | |
int big = 0; // Größte Zahl in diesem Durchlauf | |
int bigIndex = 0; // Index von big | |
// Schleife ausgehend von der Position der unsortierten Elemente | |
for (int i = j; i < list.size(); i++ ){ | |
/* | |
* Wenn aktuelles Element größer oder | |
* gleich des Größten des | |
* übergeordneten Durchlaufs... | |
*/ | |
if (list.get(i) >= big){ | |
big = list.get(i); // Setze aktuelles Element als big | |
bigIndex = i; // Setze aktuellen index als bigIndex | |
} | |
} | |
if (verbose == true){ | |
System.out.println("Die zu sortierende Liste ist jetzt noch " + listSize + " Elemente gross."); | |
System.out.println("Die Größte Zahl für diesen Durchlauf ist: " + big); | |
System.out.println(list.toString()); | |
System.out.println(" "); | |
} | |
list.remove(bigIndex); // Größte Zahl entfernen.. | |
list.add(0, big); // ..und am Anfang des Arrays wieder einfügen | |
} | |
return list; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
updated, added verbose option, removed unneeded imports