SelectionSort und InsertionSort

Status
Nicht offen für weitere Antworten.

shineon

Mitglied
Hallo,

ich schreibe Anfang Oktober eine Prüfung und da werden mit ziemlicher Sicherheit auch Sortierverfahren vorkommen. BubbleSort hab ich mittlerweile mehr oder weniger drauf, aber die anderen beiden Sortierverfahren (Insertion + Selection) krieg ich einfach nicht in meinen Kopf.

Die Verfahren an sich kann ich mit leichten Schwierigkeiten nachvollziehen, aber das reicht nicht um die Verfahren ohne Hilfe (Musterlösung) zu schreiben. Gibt es da nicht irgendeinen Trick sich die Vorgänge zu merken oder eine leichter zu verstehende Abwandlung meiner Verfahren? Wie lernt ihr solche Sachen?

Würde mich freuen wenn mir da jemand nützliche Tipps geben kann.
Code:
                 // Sortieren durch Einfügen (InsertionSort)
	// ----------------------------------------
	//
	static void InsertionSort(int[] zahlen)
	{
		// Zwei Variablen zum Zählen der Vergleiche und Bewegungen
		int AnzahlVergleiche = 0;
		int AnzahlBewegungen = 0;
		
		// Sortierverfahren InsertionSort mit Zählern 
		int merker = 0, k = 0;
		for (int i=0; i < zahlen.length; i++)
		{
			k = 0;
			AnzahlVergleiche++;
			while ((k < i) & (zahlen[i] >= zahlen[k]))
			{
				k++;
				AnzahlVergleiche++;
			}
			if (k != i)
			{	AnzahlBewegungen++;
				merker = zahlen[i];
				for (int j = i; j > k; j--)
				{
					AnzahlBewegungen++;
					zahlen[j] = zahlen[j-1];
				}
				AnzahlBewegungen++;
				zahlen[k] = merker;
			}
		}
		
		// Ausgabe der Vergleiche und Bewegungen
		System.out.println("Anzahl Vergleiche: "+AnzahlVergleiche);
		System.out.println("Anzahl Bewegungen: "+AnzahlBewegungen);
	}

	// Sortieren durch Auswahl (SelectionSort)
	// ---------------------------------------
	//
	static void SelectionSort(int[] zahlen)
	{
		// Zwei Variablen zum Zählen der Vergleiche und Bewegungen
		int AnzahlVergleiche = 0;
		int AnzahlBewegungen = 0;
		
		// Sortierverfahren SelectionSort mit Zählern 
		for(int i=0; i<zahlen.length; i++)
		{
			int min=i;
			for(int j=i+1; j<zahlen.length; j++)
			{
				AnzahlVergleiche++;
				if (zahlen[j]<zahlen[min])
					min=j;
			}
			if (min != i)
			{	
				AnzahlBewegungen += 3;
				int temp = zahlen[i];
				zahlen[i] = zahlen[min];
				zahlen[min] = temp;
			}
		}
		
		// Ausgabe der Vergleiche und Bewegungen
		System.out.println("Anzahl Vergleiche: "+AnzahlVergleiche);
		System.out.println("Anzahl Bewegungen: "+AnzahlBewegungen);
	}
 

musiKk

Top Contributor
Quelltext hilft beim Verständnis allein (mir zumindest) eher weniger. Einfach mal nebeneinander acht Kästchen aufmalen, die durcheinander Zahlen enthalten und dann den Algorithmus darauf anwenden. Ob das nun Java oder Pseudocode ist, spielt dabei ja keine Rolle.

Zur Visualisierung und Übersicht ist sortieralgorithmen.de ziemlich gut. Aber was besseres als wirklich das Ganze mal händisch durchzugehen, gibt es meiner Meinung nicht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T SelectionSort Java Java Basics - Anfänger-Themen 1
F Java Selectionsort Java Basics - Anfänger-Themen 4
N SelectionSort ; Code erläutern Java Basics - Anfänger-Themen 13
A SelectionSort bringt keine konstanten Ergebnisse Java Basics - Anfänger-Themen 4
M Selectionsort Java Basics - Anfänger-Themen 5
T Methoden Selectionsort funktioniert nicht Java Basics - Anfänger-Themen 2
T Methoden selectionsort Java Basics - Anfänger-Themen 8
X Selectionsort macht Probleme Java Basics - Anfänger-Themen 2
A SelectionSort >InsertSort< Java Basics - Anfänger-Themen 4
I SelectionSort sortiert nicht richtig! Java Basics - Anfänger-Themen 2
A SelectionSort Java Basics - Anfänger-Themen 2
S Ist das noch Insertionsort? Java Basics - Anfänger-Themen 3
S Rekursiver InsertionSort ohne Schleife Java Basics - Anfänger-Themen 7
B Zufallszahlen & Laufzeitmessung (insertionSort) Java Basics - Anfänger-Themen 7
N InsertionSort sortiert erste Zahl im Array nicht mit? Java Basics - Anfänger-Themen 6
N Verständnisproblem InsertionSort. Java Basics - Anfänger-Themen 2
B InsertionSort Java Basics - Anfänger-Themen 12
B Insertionsort verkettete Liste Java Basics - Anfänger-Themen 4
S Insertionsort probleme Java Basics - Anfänger-Themen 2
P Insertionsort Java Basics - Anfänger-Themen 4
M insertionsort Java Basics - Anfänger-Themen 9
B insertionsort Java Basics - Anfänger-Themen 12
T InsertionSort Problem Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben