Habe ein Problem,
mein Code für Quicksort sortiert falsch.(Annahme, dass das Pivotelement an der letzten Stelle ist),
Kann bitte jemand den korriegieren?
public static int[] QuicksortMain(int[] liste, int erstes, int letztes) {
if(erstes<letztes) {
int loc = Quicksort(liste, erstes, letztes);
QuicksortMain(liste,erstes,loc-1);
QuicksortMain(liste,loc+1, letztes);
}
return liste;
}
public static int Quicksort(int [] liste,int low, int high){
int pivot=liste[high];
int left=high-1;
int right=low;
while(left<=right) {
if(liste[left]<=pivot) {
left++;
}
else if(liste[right]>pivot) {
right--;
}
else{
int temp=liste[right];
liste[right]=liste[left];
liste[left]=temp;
}}
if(left>right) {
int temp=liste[high];
liste[high]=liste[left];
liste[left]=temp;}
return left;
}