Frage zu minSort

fnstGoliath

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

Java:
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

Gesperrter Benutzer
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

Mitglied
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. :>
 

fnstGoliath

Mitglied
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. :D
 

Neue Themen


Oben