第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于《算法》中JAVA動(dòng)態(tài)調(diào)整數(shù)組的問(wèn)題

關(guān)于《算法》中JAVA動(dòng)態(tài)調(diào)整數(shù)組的問(wèn)題

吃雞游戲 2018-07-08 11:06:19
    private Item[] a = (Item[]) new Object[1];     private int N = 0;     public boolean isEmpty() {         return N == 0;     }     public int size() {         return N;     }     private void resize(int max) {         Item[] temp = (Item[]) new Object[max];         for (int i = 0; i < N; i++) {             temp[i] = a[i];             a = temp;         }     }     public void push(Item item) {         //判斷當(dāng)數(shù)組元素計(jì)數(shù)變量N與數(shù)組的長(zhǎng)度相等的時(shí)候 那么將數(shù)組的長(zhǎng)度擴(kuò)充2倍         if (N == a.length) {             resize(2 * a.length);         }         a[N++] = item;     }     public Item pop() {         Item item = a[N--];         a[N] = null;         if (N > 0 && N == a.length / 4) {             resize(a.length / 2);         }         return item;     }有朋友可以幫忙解釋一下么 N > 0 && N == a.length / 4 這個(gè)條件從何而來(lái)?
查看完整描述

2 回答

?
尚方寶劍之說(shuō)

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

查看完整回答
反對(duì) 回復(fù) 2018-07-13
?
aluckdog

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)的平衡。

查看完整回答
反對(duì) 回復(fù) 2018-07-13
  • 2 回答
  • 0 關(guān)注
  • 287 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)