Nayi key index n par append karo (tree complete rehti hai), phir property restore karne ke liye sift-up karo. O(log n).
Insert O(log n) kyun hai O(n) nahi?
sift-up ek hi path par swap karta hai jiska length ≤ height = floor(log2 n) hai.
extract-max ke steps?
A[0] save karo; last element ko root mein laao; size ghataao; sift-down(0) karo; saved max return karo.
extract mein LAST element ko root mein kyun laate hain?
Yeh O(1) mein completeness preserve karta hai; koi child promote karne se beech mein hole ban jaata aur array indexing toot jaati.
Min-heap par decrease-key kaun sa primitive use karta hai?
sift-up — choti value upar belonging karti hai.
Max-heap par increase-key kaun sa primitive use karta hai?
sift-up — badi value upar belonging karti hai.
Peek O(1) kyun hai lekin extract O(log n) kyun?
Peek sirf A[0] padhta hai; extract ko ek root-to-leaf path rebalance karna padta hai.
Heap mein siblings ordered hote hain?
Nahi — sirf parent–child chain ordered hai; heaps fully sorted nahi hote.
Ek array se heap banana ka time?
O(n) via index n/2-1 se 0 tak sift-down karo.
Recall Feynman: 12 saal ke bacche ko samjhao
Socho logon ka ek pyramid jahan har boss apne neeche wale dono logon ke upar khada hai aur
unse lamba hai. Sabse lamba insaan hamesha upar hota hai, toh sabse lamba dhundhna ekdum instant hai.
Jab koi naya insaan aata hai, woh neeche khali jagah par khada hota hai aur apne boss ke saath
tab tak swap karta rehta hai jab tak woh lamba ho — woh utna hi upar jaata hai jitna deserve karta hai.
Jab top wala insaan chala jaata hai, hum bilkul last wale insaan ko upar laate hain (taaki koi gap na ho),
phir use apne sabse lambe bacche ke saath position swap karte karte neeche utarne dete hain jab tak upar wale sab
lambe na ho jayein. Har chadhna ya utarna sirf pyramid mein ek seedhi line hai, aur
pyramid chota hai (lagbhag logn floors), toh yeh fast hai.