Hiho,
lang, lang ists her das ich hier war aber ich hab mal wieder einer frage
ich SOLL! Merge-Sort rekursiv und mit einem "bescheidenen" gegebenen Interface implementieren:
msort Funktioniert wunderbar, merge auch mein problem ist es jetzt wenn ich sort(...) aufruf hätte ich es gerne das das übergebende array überschrieben wird.
vielen dank für die hilfe
PS: ich weiss geht eleganter und hab die jetzige version nur so wegen debuggig
mfg,
lang, lang ists her das ich hier war aber ich hab mal wieder einer frage
ich SOLL! Merge-Sort rekursiv und mit einem "bescheidenen" gegebenen Interface implementieren:
Java:
@Override
public void sort(int[] array) {
array = msort(array);
}
public int[] msort(int[] array){
if (array.length > 1) {
int middle = (int)Math.floor((array.length-1)/2+0.5);
int[] a = Arrays.copyOfRange(array, 0, middle+1);
int[] b = Arrays.copyOfRange(array,middle+1, array.length);
int[] ma = msort(a);
int[] mb = msort(b);
array = merge(ma,mb);
}
return array;
}
msort Funktioniert wunderbar, merge auch mein problem ist es jetzt wenn ich sort(...) aufruf hätte ich es gerne das das übergebende array überschrieben wird.
Java:
int[] a = {8,9,1,123,1,4,44,5,8,8,98,6,4};
merge.sort(a);
System.out.println(Arrays.toString(a)) //{8,9,1,123,1,4,44,5,8,8,98,6,4};
vielen dank für die hilfe
PS: ich weiss geht eleganter und hab die jetzige version nur so wegen debuggig
mfg,