Algorithmen zum Sortieren


endi

Grünschnabel
#1
Hallo,

hab eine Methode, die das Array sortiert zurück gibt, aber hab nicht verstanden Wie es funktioniert, kann jemand villeicht erklären Wie es funktioniert?Was in jede zeile passiert.danke im voraus.




Code:
    public static int[] sortieren(int[]array){

        int i = 0;
        
            while (i<array.length/2){
            
                int t = array[i];
                array[i] = array[array.length-1-i];
                array[array.length-1-i] = t;
                i=i+t;
            }
            
       return array;
        }
 

CPoly

Mitglied Weizenbier
#2
hab eine Methode, die das Array sortiert zurück gibt
Nein. Hast du den Code mal getestet, den du gepostet hast? Der macht irgendwas, aber keine Sortierung. Der vertauscht ein paar Werte im Array, das aber auch ohne Sinn, denn je nach Größe des Inhalts des Arrays läuft die Schleife evtl. nur ein einziges Mal durch. Oder auch unendlich oft.

Edit: Trotzdem kann ich dir erklären, was die Zeilen machen.

Java:
public static int[] sortieren(int[]array){
	//Variable i anlegen und mit dem Wert 0 initialisieren
	int i = 0;
	
	//Eine Schleife die so lange läuft, wie die Variable i kleiner ist als die halbe Länge des Arrays
	while (i<array.length/2){
		//Die nächsten drei Zeilen sind eine klassische Vertauschung.
		
		//1. Temporäre Variable nehmen, um Wert zu merken
		int t = array[i];
		
		//2. Zuweisen eines andere Wertes an die Stelle, an der wir uns den Wert gemerkt haben
		array[i] = array[array.length-1-i];
		
		//3. Den in 1. gemerkten Wert an die andere Stelle schreiben
		array[array.length-1-i] = t;
		
		//Hier wird i um den Wert t erhöht. t ist der Wert den wir in 1. gemerkt haben
		i=i+t;
	}
	
	return array;
}
 
Zuletzt bearbeitet:
Gefällt mir: endi