合并排序代码抛出NullPointerException

Anu*_*Dey 1 java arrays mergesort nullpointerexception

我做了一个非常简单的合并排序实现,但我继续得到java.lang.NullPointerException.这是我的代码:

public class MergeSort {

    private int[] c;
    private int i = 0, j = 0, k = 0;

    public MergeSort(int[] a, int[] b){

        while( i < a.length && j < b.length){

            if(a[i] > b[j])
                c[k++] = b[j++];
            else
                c[k++] = a[i++];
        }

        while(i < a.length){
            c[k++] = a[i++];
        }

        while(j < b.length){
            c[k++] = b[j++];
        }

        i = 0;
        while(i < c.length){
            System.out.print(c[i++] + " ");
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我正在从主类调用构造函数,如下所示:

public class MainRun {


    public static void main(String[] args) {

        System.out.println("Merge Sort Algorithm");

        int a[] = {1, 3, 5, 7, 9};
        int b[] = {2, 6, 7, 9, 11};

        new MergeSort(a, b);

    }

}
Run Code Online (Sandbox Code Playgroud)

虽然我知道我得到了使用未初始化对象的异常,但仍然无法在我的代码中找到错误.这是确切的错误:

MergeSort中的线程"main"java.lang.NullPointerException中的合并排序算法异常.(MergeSort.java:14)MainRun.main(MainRun.java:11)

我究竟做错了什么?谢谢 :)

Phi*_*der 5

c 未初始化

你这样写:

private int[] c = new int[x];
Run Code Online (Sandbox Code Playgroud)

这将创建一个长度x为零的数组