0
爲什麼分區方法的循環體不會拋出ArrayIndexOutOfBounds異常?分區循環理解
public static int partition(int[] a, low, high) {
int k = low, m = low;
/* loop invariant:
* low <= k <= m <= high and
* all elements in a[low..k-1] are RED (i.e., < pivot) and
* all elements in a[k..m-1] are BLUE (i.e., >= pivot)
*/
while (m != high) {
if (a[m] >= pivot) // a[m] is BLUE
{ }
else { // a[m] is RED
swap(a,k,m);
k = k+1;
}
m = m+1;
}
return k;
}
你給甚至不會編譯代碼,它如果你提供了不合適的「低」和「高」值,肯定會*拋出異常。 –
這是代碼的一部分,我只對這種方法的循環體感興趣 – user1795732
請閱讀http://tinyurl.com/so-list - 基本上,你沒有給我們足夠的上下文。我*懷疑*你想給我們上下文中'低'和'高','高'和'a.length'之間的關係 - 但沒有這種背景下,我們不能回答這個問題。 (首先,因爲如果你提供了不合適的值,它將*拋出ArrayIndexOutOfBoundsException。) –