【发布时间】:2014-09-24 22:35:06
【问题描述】:
我的任务是编写一个称为 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;
}
【问题讨论】:
-
请发布您现有的尝试。
-
你自己说的,需要先将数组拆分为4。
-
这听起来类似于 MergeSort - 维基百科关于合并排序的文章有一个递归实现合并排序的示例(在 C 中,而不是 java 中)。