Re: [問題]傳入物件的修改方式
修改過後的程式碼
private static void QuickSortWork(ICanCompare[] objs, int left, int
right){
if((right - left) >= 2){ //問題點之一
ICanCompare pivot = objs[right];
int i = left - 1;
int j = right;
ShortLoop : for(;;){
while(objs[++i].Compare(pivot) > 0); //問題點之二
while(objs[--j].Compare(pivot) < 0); //同上
if(i < j){
ICanCompare temp = objs[i];
objs[i] = objs[j];
objs[j] = temp;
}
else break ShortLoop;
}
ICanCompare temp = pivot;
pivot = objs[i];
objs[i] = temp;
QuickSortWork(objs, left, i - 1);
QuickSortWork(objs, i + 1, right);
}
}
while部分的問題之前就有前輩提出來了
只不過因為還有前面關於長度部分的問題
讓exception的說明還是一樣,所以讓之前昏頭的我想說應該不是這邊的問題
對於提出來說明的大家致上謝意
另外我還想問的問題就是
private static Distance newDistance(Distance a){
a = new Distance(a.getD() - 1);
return a;
}
像上述的程式碼這樣,對於物件的修改要怎麼樣才會產生或不產生影響?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.135.18
討論串 (同標題文章)