Moin,
ich hab die Aufgabe bekommen den Quicksort Algorithmus nachzubauen, nerviger weise funktioniert meine version hinten und vorne nicht. Er wählt bei der verkleinerung der liste ein neues pivot element aber tauscht nie.
Der Code ist nur für die linke seite aber selbst da müsste sich ja nach den ersten durchläufen was tun.
Währe nett wenn mir einer sagen könnte wo ich da mist verbockt habe.
mfg
Shibas
ich hab die Aufgabe bekommen den Quicksort Algorithmus nachzubauen, nerviger weise funktioniert meine version hinten und vorne nicht. Er wählt bei der verkleinerung der liste ein neues pivot element aber tauscht nie.
Java:
package core;
public class Sort {
public Sort()
{
}
//initialisierung
int links = 0;
int rechts = 0;
int pivot = 0;
double mitte = 0;
int länge = 0;
int i = 0;
int j = 0;
int k = 0;
Daten temp=null;
//Sortier Algorithmus
public Daten[] quicksort(Daten[] db)
{
länge=db.length-1;
//sortierung links-------------------------------------------------------------------------------------
while(länge != 0)
{
mitte=Math.ceil(länge/2);
länge=(int) mitte;
pivot = db[(int) mitte].value[0];
System.out.println("Pivot: "+db[(int) mitte].wort);
k=0;
while(i<j)
{
//Finde Element größer Pivot
i=0;
while (db[i].value[0] < pivot && i < mitte-1)
{
i++;
}
links=i;
//Finde Element kleiner Pivot
j=db.length-1;
while(db[j].value[0] > pivot && j > mitte)
{
j--;
}
rechts=j;
//elemente vertauschen
if(i<j)
{
System.out.println("tausch");
temp = db[links];
db[links]=db[rechts];
db[rechts]=temp;
}
k++;
}
}
//Sortierung Rechts ------------------------------------------------------------------------
return db;
}
}
Der Code ist nur für die linke seite aber selbst da müsste sich ja nach den ersten durchläufen was tun.
Währe nett wenn mir einer sagen könnte wo ich da mist verbockt habe.
mfg
Shibas