2 回答

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
if (N > 0 && N == a.length / 4) 這是用來(lái)控制何時(shí)觸發(fā) resize 的,當(dāng)不停的彈出元素時(shí),a數(shù)組中的有效元素個(gè)數(shù)會(huì)不停的減少,此時(shí)a數(shù)組的長(zhǎng)度是不變的,
當(dāng)有效元素個(gè)數(shù) == 數(shù)組長(zhǎng)度的4分之一時(shí),就調(diào)整數(shù)組的長(zhǎng)度,將其長(zhǎng)度變?yōu)?/2

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
這是根據(jù)經(jīng)驗(yàn)得到的。
當(dāng)數(shù)組小于1/4的時(shí)候,就很大概率它不會(huì)再擴(kuò)充到1/2了,所以就縮小一半(在pop里)。
當(dāng)數(shù)組大于1/2的時(shí)候,它就有很大概率會(huì)繼續(xù)擴(kuò)展,那么就擴(kuò)大一倍(在push里)。
這么做,是權(quán)衡了空間和時(shí)間得到的相對(duì)比較優(yōu)的平衡。
- 2 回答
- 0 關(guān)注
- 287 瀏覽
添加回答
舉報(bào)