3 回答

TA貢獻(xiàn)1828條經(jīng)驗 獲得超3個贊
不同之處在于'insertionList' 在while 循環(huán)中被修改。當(dāng)您將 temp 變量設(shè)置為 'insertionList[i]' 時,temp 的值在整個 while 循環(huán)中保持不變。

TA貢獻(xiàn)1830條經(jīng)驗 獲得超9個贊
while(j >= 0 && insertionList[j] > insertionList[i]) {
insertionList[j + 1] = insertionList[j];
j--;
}
錯誤在這里。插入列表[j + 1] = 插入列表[j]
在第一次執(zhí)行時,j + 1 = i,它會改變insertList[i]的值
它會影響你的病情。
insertionList[j] > insertionList[i]
所以應(yīng)該改為臨時變量。

TA貢獻(xiàn)1829條經(jīng)驗 獲得超6個贊
while(j >= 0 && insertionList[j] > insertionList[i])
在這一行中,您正在與循環(huán)insertionList
中的迭代中的第 i 個元素進(jìn)行比較,此代碼可能會更改所持有的值。但是當(dāng)您使用變量時,對于整個迭代,此處的比較值不會改變。這就是為什么你得到不同的輸出。while
insertionList[j + 1] = insertionList[j];
insertionList[i]
temp
insertionList[j] > temp
添加回答
舉報