B
Bassking
Gast
Hallo,
ich wollte einfach nur nen Quicksort programmieren, benutze Eclipse und
eigentlich wird das Array auch gut sortiert.
Kommt das Programm zur Abbruchbedingung der Rekursion springt es aber trotzdem wieder in die Rekursion zurück und ich blicke nicht ganz, warum. Das führt nämlich dazu, dass die Liste wieder unsortiert wird und schon beim Compilieren gestreikt wird.
Danke für jeden Tip!
*Wildcard - Codetags eingefügt*
ich wollte einfach nur nen Quicksort programmieren, benutze Eclipse und
eigentlich wird das Array auch gut sortiert.
Kommt das Programm zur Abbruchbedingung der Rekursion springt es aber trotzdem wieder in die Rekursion zurück und ich blicke nicht ganz, warum. Das führt nämlich dazu, dass die Liste wieder unsortiert wird und schon beim Compilieren gestreikt wird.
Code:
public class haupt {
public static void main(String[] args)
{
int feld[]={4,2,7,9,55,3,1,2,11,8};
int pivotIndex = feld[feld.length/2];
quicksorte(feld,0,9);
for (int i=0; i<feld.length;i++)
{
System.out.println(feld[i]);
}
}
public static int sortieren (int feld[], int left, int right, int pivot)
{
int pivotWert = feld[pivot];
int tauschen = feld[right];
feld[right]=feld[pivot];
feld[pivot]=tauschen;
int start = left;
for (int i = 0; i<right; i++)
{
if (feld[i]<=pivotWert)
{
int tausch = feld[start];
feld[start]=feld[i];
feld[i]=tausch;
start++;
}
}
int tausch2 = feld[right];
feld[right]=feld[start];
feld[start]=tausch2;
return start;
}
public static void quicksorte (int feld[], int left, int right)
{
if (right > left)
{
int PivotIndex=(right/2);
int PivotNewIndex=sortieren(feld,left,right,PivotIndex);
quicksorte(feld,left,PivotNewIndex-1);
quicksorte(feld,PivotNewIndex+1,right);
}
}}
Danke für jeden Tip!
*Wildcard - Codetags eingefügt*