我的問題是,我有兩個函數,其中一個函數調用另一個函數,因爲它執行了幾次(rec),我想要保存值進入第二個函數(在我的情況下調用Mergesort)。我實際上是使用Merge Sort對一個列表進行排序,但是我很想知道反轉的數量,所以我想返回一個int,但是我不知道如何存儲這個值,所以我可以將所有的值加在一起最後得到反轉的數量(是的,我知道存在一個O(n^2)算法來找到它)。我想大多數人都知道MergeSort算法,所以我不會把它寫出來,但是從下面的代碼你可能會知道我在找什麼。如果它不幫助,然後嘗試從我:)如何通過另一個函數多次運行函數時存儲某個值
public ArrayList MergeMerge(ArrayList A, int e, int a){
s=...;
MergeMerge(A,e,a);
MergeMerge(A,e-1,a);
MergeSort(A,e,r,s);
public ArrayList Mergesort (ArrayList A, int e, int a, int s) {
...
int inversions=0;
for (....)
....
else {
...
inversions=inversions+(s-i);
}
沒有空間限制;隨意使用「你」而不是「你」... – 2012-03-15 02:02:24
nvm,我想通了。我在數組A的末尾添加了一個額外的值,每次運行我的Mergesort函數時,它都會增加保存在數組中的值。 – John 2012-03-15 13:29:50