Java 什么';我修改的合并排序实现有什么问题?

Java 什么';我修改的合并排序实现有什么问题?,java,sorting,mergesort,Java,Sorting,Mergesort,我正在尝试编写一个修改的合并排序作为练习。但是我被困在为什么我的代码不起作用,我无法确定问题出在哪里?!任何提示或帮助都将不胜感激。提前谢谢 这是我的密码: public class MergeSort { public static void mergeSort(int[] list) { mergeSort(list, 0, list.length - 1); } private static void mergeSort(int[] list,

我正在尝试编写一个修改的合并排序作为练习。但是我被困在为什么我的代码不起作用,我无法确定问题出在哪里?!任何提示或帮助都将不胜感激。提前谢谢

这是我的密码:

public class MergeSort {

    public static void mergeSort(int[] list) {
        mergeSort(list, 0, list.length - 1);
    }

    private static void mergeSort(int[] list, int low, int high) {

        if (low < high) {

            int middle = (high + low) / 2;

            mergeSort(list, low, middle);

            mergeSort(list, middle + 1, high);

            int[] temp = merge(list, low, high);
            System.arraycopy(temp, 0, list, low, high - low + 1);
        }
    }

    private static int[] merge(int[] list, int low, int high) {

        int low1 = low;
        int high1 = high;
        int mid = (low + high) / 2;
        int end_low = mid;
        int start_high = mid + 1;

        while ((low <= end_low) && (start_high <= high1)) {
            if (list[low] < list[start_high]) {
                low++;
            } else {
                int temp = list[high - low + 1];
                for (int k = start_high - 1; k >= low; k--) {
                    list[k + 1] = list[k];
                }
                list[low] = temp;
                low++;
                end_low++;
                start_high++;
            }
        }

        return list;
    }

    public static void main(String[] args) {
        int[] list = { 2, 3, 2, 5, 6, 1, -2, 3, 14, 12, -5 };
        mergeSort(list);
        for (int i = 0; i < list.length; i++)
            System.out.print(list[i] + " ");
    }
}
公共类合并排序{
公共静态无效合并排序(int[]列表){
mergeSort(list,0,list.length-1);
}
私有静态void合并排序(int[]列表,int低,int高){
如果(低<高){
int-middle=(高+低)/2;
合并排序(列表、低、中);
合并排序(列表,中间+1,高);
int[]温度=合并(列表、低、高);
系统阵列复制(温度,0,列表,低,高-低+1);
}
}
私有静态int[]合并(int[]列表,int低,int高){
int low1=低;
int high1=高;
int mid=(低+高)/2;
int end_低=中;
int start_high=mid+1;

while((low)“任何提示或帮助都将不胜感激。”。提示:使用调试器。在mergeSort方法上,您没有将merge方法返回的值分配给low和high变量。我没有运行代码,但这是引起我注意的第一件事。