Merge Sort wie gehe ich weiter vor?
wenn ich das so auführe, dann wird folgendes ausgegeben:
aber weiseo wird das teilarray 7 6 oder auch 5 4 nicht weiter unterteilt?
und wie würde ich jetzt weiter vorgehen bei mergesort, das teilen funktioniert ja bis auf das letzte
public class Mersa {
public static void main(String[] args) {
int[] arr = {7,6,5,4,3,2,1};
//System.out.println(Arrays.toString(arr));
merser(arr);
}
public static void merser(int[] arr){
mert(arr,0, arr.length-1);
}
public static void mert(int[] arr, int left, int right){
if(left < right){
int mid = (right+left)/2;
mert(arr, left, mid);
mert(arr, mid+1, right);
for(int i = left; i <= right; i++){
//dat hier ist debugging
System.out.print(arr[i] + " ");
} System.out.println();
}
}
}
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Java, Programmiersprache, Programmieren & Softwareentwicklung
aber weiseo wird das teilarray 7 6 oder auch 5 4 nicht weiter unterteilt?
Wenn du einen Array mit nur zwei Elementen weiter unterteilst, dann hast du jeweils Arrays mit einem Element. Was willst du da dann vergleichen?
Also klar, kannst du auf die auch einen Merge-Schritt machen, aber warum dann nicht gleich den basisfall eine Stufe höher heben?
Wenn das Teilen klappt, dann kannst du dich an das mergen machen.