[Java] Sortierung??

CPU

Lieutenant
Registriert
Jan. 2006
Beiträge
704
Hallo,

der folgende Quellcode ist ein von mir selbst erstellter Sortieralgorithmus:
Code:
	private int[] sortieren(int[] zahlen) {
		int len = zahlen.length;
		int run = 0;
		
		for(int i=0;i<len;i++) {
			run = i;
			for(int k=0;k<len;k++) {
				if(zahlen[i] > zahlen[k]) {
					change(zahlen,k,run);
					run = i;
				}
			}
		}
		return zahlen;
	}
	
	private int[] change(int[] array,int x,int s) {
		int kk = array[x];
		array[x] = array[s];
		array[s] = kk;
		return array;
	}

Dieser ist jedoch sehr langsam, da einen Array der 1.000 Einträge hat 1.000.000-mal durchläuft.
Wie kann man nun diesen Sortieralgorithmus verbessern (im Hinblick auf die Verschnellerung)?

In Java gibt es ja bereits schon viele Sortieralgorithmen: Bubblesort, Mergesort ... Gibt es meinen schon (Wenn ja, wie lautet der Name)?

Danke,
CPU
 
Hmm sieht für mich nach einem unoptimierten Bubblesort aus. "run" ist doch überflüssig, da doch zweimal "i" zugewiesen wird, ohne dass sich dieser Wert in der Zwischenzeit hätte ändern können.

Ansonsten einfach mal bei google suchen - an diversen Unis findet man solche Verfahren im Zweitsemesterstoff. Da werden die alle nochmal durchgekaut.
 
Die Klasse Array stellt dir bereits den Quicksort Algorithmus zur Verfügung, der average case in n*log(n) sortiert.

Falls dieser nicht reichen sollte wird es komplizierter.
 
kann mir jemand bei der aufgabe helfen bzw lösen..???

Sortieren Sie einen Array von ganzen Zahlen.
Initialisieren Sie den Array auch über Tastatureingabe.

Vorgehen (lineare Suche):
Ab 1. Element nach größter Zahl suchen, 1. Element mit dieser tauschen.
Danach ab 2. Element nach (zweit)größter Zahl suchen, mit 2. Element tauschen
und so weiter bis zum Ende.
Hinweis: Ergibt zwei geschachtelte Schleifen.
 
Zurück
Oben