Auf Thema antworten

Guten Tag liebes Java-Forum,

ich kriege bei meinem Code eine Exception und verstehe nicht warum.

[CODE=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] + ", ");

        }

    }

}

[/CODE]



Oben