MasterOfWar
Lt. Commander
- Registriert
- Jan. 2009
- Beiträge
- 1.397
Abend,
ich habe folgen Code für Mergesort
Wenn ich das mit der Reihe 7,8,9,1,2,44,56,0 teste bekomme ich 0,7,1,2,8,9,44,56 ,also nicht ganz das richtige.
Sieht zufällig jemand den Fehler ?
ich habe folgen Code für Mergesort
Code:
public void mergesort(int[] feld, int start,int end) {
if(end-start<2){
return;
}
int middle=(start+end)/2;
mergesort(feld,1,middle);
mergesort(feld,middle,end);
int[] temp=new int[end-start];
int left=start;
int right=(start+end)/2;
int j=0;
while(j<end-start){
if(left>=(middle){temp[j]=feld[right++];}else{
if(right>=end){temp[j]=feld[left++];}else{
if(feld[left]<feld[right]){temp[j]=feld[left++];}else{
temp[j]=feld[right++];
}
}
}
j=j+1;
}
for(int i=0;i<end-start;i++){
feld[i+start]=temp[i];
}
}
Sieht zufällig jemand den Fehler ?