我的任务是编写一个称为quadSort的递归方法,将数组拆分为4个部分,按照quadSort排序,然后前两个(A和B)合并成一个数组(X),第二个(C和D)合并成一个(Y),那么这两个合并为一个。 quadSort应该调用quadSort()4次(每个部分一次)。我的问题是我已完成基本案例,但我无法弄清楚如何编写该方法的递归部分。任何人都可以帮助我理解如何去做这个或者给我一个例子吗?提前致谢。需要帮助了解数组排序的递归
编辑:这是我尝试
public static void quadSort(int array[], int index, int length){
for (int i = 1; i<array.length; i++){
if(array[i] <= 1000){
for(i = 1; i<array.length;i++){ //Start point for the insertion sort
int key = array[i];
int j = i-1;
while((i>-1) && (array[j] > key)){
array [j+1] = array[j];
i--;
}
array[j+1] = key;
} //End insertion sort
}
else{
int split = (array[i])/4;
}
}
return;
}
请发表您现有的尝试。 – 2014-09-24 14:03:17
你自己说过,你需要首先将数组拆分为4. – njzk2 2014-09-24 14:26:07
这听起来与MergeSort类似 - 维基百科关于合并排序的文章有一个递归实现的合并排序的例子(在C中,不是java)。 – Sbodd 2014-09-24 15:12:39