MergeSort Algorithmus

KogoroMori21

Aktives Mitglied
Guten Tag liebes Java-Forum,
ich kriege bei meinem Code eine Exception und verstehe nicht warum.
Java:
import java.util.Arrays;
import java.util.stream.IntStream;
public class MergeSort {
    
    
    //diese Methode vereinigt jeweils zwei Arrays!
    public static int[] merge (int[] zahlenreihe_a, int[] zahlenreihe_b) {

        int[] a = new int[zahlenreihe_a.length + zahlenreihe_b.length];
        
        for(int i = 0; i < zahlenreihe_a.length; i++) {
            a[i] = zahlenreihe_a[i];
        }
        
        Arrays.sort(a);
        
        int count = 0;
        
        for(int integer : a)
            if(integer == 0)
                count += 1;
        
        int[] b = new int[count];
        
        for(int i = a.length - count; i < a.length; i++)
            b[1 - a.length + count] = a[i];
        return b;
    }

    
    public static int[] mergesort(int[] unsortedmerge, int links, int rechts) {
        
        if(rechts > links) {
            
            int q = (int) Math.floor( (links + rechts) /2);
            
            int[] zahlenreihe_links = mergesort(unsortedmerge, 1 , q);
            int[] zahlenreihe_rechts = mergesort(unsortedmerge, q + 1, rechts);
            
            return merge(zahlenreihe_links, zahlenreihe_rechts);
        }
        
        return unsortedmerge;
    }
    
    public static void main(String[] args) {
        int[] unsortedmerge = {3, 4, 11, 17, 38, 42, 39, 5};
        
        int[] sortedmerge = mergesort(unsortedmerge, 0, unsortedmerge.length -1);
        
        for(int i = 0; i < sortedmerge.length; i++) {
            System.out.print(sortedmerge[i] + ", ");
        }
    }
}
 

Anhänge

  • exception.PNG
    exception.PNG
    8,6 KB · Aufrufe: 12

Zurück
Oben