Sorting

Malimi

Mitglied
Hey,

ich habe die Aufgabe bekommen drei verschiedene Sorting Methoden zu realisieren.
Im Prinzip verstehe ich wie das ganze funktioniert, aber dadurch, dass ich verschiedene Algorithmen aus der Vorlesung implementieren soll bin ich gerade einwenig verwirrt.

Also hier eine Methode als Beispiel:

Java:
public static void sortInsertionSort(List<Name> names)

Implementieren soll ich dann folgenden Algorithmus

Java:
static void insertionSort(int[] feld) {
for (int i = 1; i < feld.length; i++) {
} }
Aufruf:
int j = i;
int m = feld[i];
while (j > 0 && feld[j-1] > m) {
feld[j] = feld[j-1]; j = j - 1;
}
feld[j] = m;

Ich steh gerade einfach total aufn Schlauch und bin irgendwie durch die Zahlen und Namen echt durcheinander und würde mich darüber freuen wenn mir hierbei jemanden helfen würde!
 

Spin

Top Contributor
Moin,

Java:
public static void main(String[] args) {

		int[] unsortiert = { 4, 1, 8, -3, 5, 7 };
		int[] sortiert = insertionSort(unsortiert);

		for (int i = 0; i < sortiert.length; i++) {
			System.out.print(sortiert[i] + ", ");
		}

	}

	public static int[] insertionSort(int[] sortieren) {
		int temp;
		for (int i = 1; i < sortieren.length; i++) {
			temp = sortieren[i];  // array element an pos i zwischenspeichern
			int j = i; // pos i speichern
			while (j > 0 && sortieren[j - 1] > temp) { // ist das vorherige element > als das element danach ?
				sortieren[j] = sortieren[j - 1]; // wenn ja dann packe es eins weiter im array
				j--;
			}
			sortieren[j] = temp; // damit die andere zahl nicht verloren geht nochmal speichern
		}
		return sortieren;
	}

Welche Algos denn noch ?
And why dont use google? ;)
 

Malimi

Mitglied
Perfekt, vielen Dank.
Ja das hab ich natürlich auch gemacht ;)
Aber da die Rede von names war und ich zu insertionsort nur was mit Zahlen gefunden war ich eben einwenig verwirrt.

Also in diese Methode...

Java:
public static void sortBubbleSort(List<Name> names)

... sollte dann folgender Algorithmus implementiert werden

Java:
static void bubbleSort(int[] feld) {
         boolean vertauscht;
}
do {
      vertauscht = false;
      for (int i = 0; i < feld.length-1; i++) {
           if (feld[i] > feld[i+1]) {
tausche(feld, i, i+1); vertauscht = true;
} }
} while (vertauscht);


Und in diese Methode:

Java:
 public static void sortQuickSort(List<Name> names)

Java:
  static void qsort(int[] feld, int u, int o) {
             int pivot = (u + o) / 2;
if (o > u) {
int pn = partition(feld, u, o, pivot); qsort(feld, u, pn-1);
qsort(feld, pn+1, o);
} }
static int partition(int[] feld, int u, int o, int pivot) {
             int pn = u;
             int pv = feld[pivot];
             tausche(feld, pivot, o);
             for (int i = u; i < o; i++) {
if (feld[i] <= pv) { tausche(feld, pn++, i);
} }
             tausche(feld, o, pn);
             return pn;
}
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben