更新時(shí)間:2022年02月15日18時(shí)14分 來(lái)源:傳智教育 瀏覽次數(shù):
hash 表的查找,更新的時(shí)間復(fù)雜度是 $O(1)$,而紅黑樹(shù)的查找,更新的時(shí)間復(fù)雜度是 $O(log_2?n )$,TreeNode 占用空間也比普通 Node 的大,如非必要,盡量還是使用鏈表。
hash 值如果足夠隨機(jī),則在 hash 表內(nèi)按泊松分布,在負(fù)載因子 0.75 的情況下,長(zhǎng)度超過(guò) 8 的鏈表出現(xiàn)概率是 0.00000006,樹(shù)化閾值選擇 8 就是為了讓樹(shù)化幾率足夠小。
當(dāng)鏈表長(zhǎng)度超過(guò)樹(shù)化閾值 8 時(shí),先嘗試擴(kuò)容來(lái)減少鏈表長(zhǎng)度,如果數(shù)組容量已經(jīng) >=64,才會(huì)進(jìn)行樹(shù)化。
情況1:在擴(kuò)容時(shí)如果拆分樹(shù)時(shí),樹(shù)元素個(gè)數(shù) <= 6 則會(huì)退化鏈表。
情況2:remove 樹(shù)節(jié)點(diǎn)時(shí),若 root、root.left、root.right、root.left.left 有一個(gè)為 null ,也會(huì)退化為鏈表。
Javascript猜數(shù)游戲怎么實(shí)現(xiàn)?【含游戲源碼】
北京校區(qū)