我的任務是編寫一個稱爲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