在Java

时间:2017-01-05 13:43:24

标签: java recursion mergesort

我在Java中实现merge-sort时遇到问题。目标是有两个类,第一个是union,它结合了两个已经排序的数组(我想我有一个正确的)。然而另一类“排序”是我真正陷入困境的地方。我想将一个数组递归地拆分成更小的数组,然后将它们与union结合起来。这是我到目前为止所得到的,我希望有人可以帮助我...谢谢!

class MergeSort {
 public static int[] sort(int[] array) {

int[] firsthalf = new int[array.length];  #muss noch verschoben werden, a
System.arraycopy(array, 0, firsthalf, 0, array.length);

int[] firsthalf = Arrays.copyofRange(firsthalf, 0, lefthalf.length/2)
int[] secondhalf= Arrays.copyofRange(
public static int[] union(int[] sortedIntArray1,
                        int[] sortedIntArray2) {



int[] neuesarray = new int[sortedIntArray1.length + SortedIntArray2.length];
int i = 0, j = 0, k = 0;
while (i < sortedIntArray1.length && j < sortedIntArray2.length)
{
    if (sortedIntArray1[i] < sortedIntArray2[j]) #wenn liste an stelle i kleiner als liste 2 an stelle j 
    {
        neuesarray[k] = sortedIntArray1[i]; 
        i++;
    }
    else
    {
        answer[k] = sortedIntArray2[j];                       #bei umgekehrtem fall, wird von liste2 das element angehängt
        j++;
    }
    k++;
}

while (i < sortedIntArray1.length)          #diese while schleifen sind wichtig, sonst bleibt der Zeiger praktisch stehen
{
    neuesarray[k] = sortedIntArray1[i];
    i++;
    k++;
}

while (j < sortedIntArray2.length)
{
    neuesarray[k] = sortedIntArray2[j];
    j++;
    k++;
}

return neusarray;
} 
}
}

0 个答案:

没有答案