# Frage zu minSort



## fnstGoliath (20. Nov 2011)

So, ich brauche mal eure Hilfe, da ich eine Stelle einfach nicht verstehe.
Hier erst mal  Code:


```
public void sortiere(){ /
    for (int i=0; i<=maxIndex;i++)
    	minPos=i; 
    	for (int k = i; k <=maxIndex; k++){ 
			if (zahl[k] > zahl[minPos]){ 
			minPos=k
    		}
    	}
    	for (int p=minPos; p>0;p--){ 
        	int ablage = zahl[p]; 
        	zahl[p] = zahl[(p-1)];.
        	zahl[(p-1)] = ablage; 
    		}[/Java]


"if (zahl[k] > zahl[minPos]){ " 

An dieser Stelle verstehe ich nicht, wieso ein größer als richtig ist und bei einem kleiner als die Liste falsch rum ist. Eigentlich muss ich doch überprüfen ob die aktuelle Zahl kleiner als die (vorher) kleinste Zahl ist und wir dann merken wo die (neue) kleinste Zahl ist, wenn diese KLEINER und nicht größer ist?

Wäre nett, wenn mir irgendjemand kurz helfen könnte, warum das so ist.
Danke
```


----------



## schlingel (20. Nov 2011)

Kleiner Tipp: Lass dir in jedem Schleifendurchlauf der äußersten Schleife ausgeben wie das aktuelle Array ausschaut und was nach dem Shifting in der zweiten Schleife passiert ist. Dann siehst du nicht nur warum er das tut sondern auch wie dämlich der Algorithmus das Problem anpackt.


----------



## fnstGoliath (20. Nov 2011)

Ah okay, vielen Dank.
Nur weiß ich jetzt immer noch nicht wie ich das Verschieben unten ändern muss, damit man kleiner als schreiben kann.
Tauschen darf ich nicht, sondern soll verschoben werden.

Hat da wer Tipps oder kann's mir kurz schreiben. Wäre top. :>


----------



## schlingel (20. Nov 2011)

Sollst du die Reihenfolge ändern oder einfach nur aus dem > ein <= machen?


----------



## fnstGoliath (20. Nov 2011)

Eigentlich wollte ich die Reihenfolge gleich lassen, nur das Zeichen ändern und dachte ich brauch dann nur den unteren Teil mit dem verschieben verändern. Aber vielleicht liege ich da auch falsch und das geht nicht? Dann ist das wohl okay so weit und ich muss das so lassen.


----------

