-2
我想用遞歸排序一個整數隊列。我很確定我明白這件事的邏輯。但是由於工作不正常,我一定錯過了我的代碼。它只適用於只有2個數字的簡單隊列,除此之外的任何東西都不起作用。誰能告訴我我錯過了什麼?提前致謝!如何使用遞歸在Java中對隊列進行排序?
public Queue<Integer> sort(Queue<Integer> queue) {
Queue<Integer> cloneQueue = new Queue<Integer>(queue);
//creating a copy of the original queue
if (cloneQueue.size()<=1){
return q;
//base case
}else{
Queue<Integer> part1 = new Queue<Integer>();
Queue<Integer> part2 = new Queue<Integer>();
splitQueues(cloneQueue,part1,part2);
//split the queue in half and put them in part1 and part2
sort(part1);
sort(part2);
//recursion calls
return mergeSortedQueues(div1,div2);
}
}
請訪問[幫助]並閱讀[問]。 _「...它只是不起作用...」是不夠的,你必須更清楚地知道「不工作」時會發生什麼,以及你採取了哪些步驟來調試它。首先,介紹一下IDE調試器中的代碼。 99%的時間可以讓你找到代碼執行你不期望的事情。問題形式「這是我的代碼,請告訴我什麼是錯誤的」,沒有其他的東西在StackOverflow上被認爲是無關緊要的。 –