AI EducademyAIEducademy
🌳

AI పునాదులు

🌱
AI Seeds

సున్నా నుండి ప్రారంభించండి

🌿
AI Sprouts

పునాదులు నిర్మించండి

🌳
AI Branches

ఆచరణలో అన్వయించండి

🏕️
AI Canopy

లోతుగా వెళ్ళండి

🌲
AI Forest

AI లో నిపుణత సాధించండి

🔨

AI నైపుణ్యం

✏️
AI Sketch

సున్నా నుండి ప్రారంభించండి

🪨
AI Chisel

పునాదులు నిర్మించండి

⚒️
AI Craft

ఆచరణలో అన్వయించండి

💎
AI Polish

లోతుగా వెళ్ళండి

🏆
AI Masterpiece

AI లో నిపుణత సాధించండి

🚀

కెరీర్ రెడీ

🚀
ఇంటర్వ్యూ లాంచ్‌ప్యాడ్

మీ ప్రయాణం ప్రారంభించండి

🌟
ప్రవర్తనా ఇంటర్వ్యూ నైపుణ్యం

సాఫ్ట్ స్కిల్స్ నేర్చుకోండి

💻
సాంకేతిక ఇంటర్వ్యూలు

కోడింగ్ రౌండ్ విజయం సాధించండి

🤖
AI & ML ఇంటర్వ్యూలు

ML ఇంటర్వ్యూ నైపుణ్యం

🏆
ఆఫర్ & అంతకు మించి

అత్యుత్తమ ఆఫర్ పొందండి

అన్ని ప్రోగ్రామ్‌లు చూడండి→

ల్యాబ్

7 ప్రయోగాలు లోడ్ అయ్యాయి
🧠న్యూరల్ నెట్‌వర్క్ ప్లేగ్రౌండ్🤖AI లేదా మనిషి?💬ప్రాంప్ట్ ల్యాబ్🎨ఇమేజ్ జనరేటర్😊సెంటిమెంట్ ఎనలైజర్💡చాట్‌బాట్ బిల్డర్⚖️ఎథిక్స్ సిమ్యులేటర్
🎯మాక్ ఇంటర్వ్యూల్యాబ్‌లోకి వెళ్ళండి→
nav.journeyబ్లాగ్
🎯
మా గురించి

ప్రతి చోటా, ప్రతి ఒక్కరికీ AI విద్యను అందుబాటులోకి తీసుకురావడం

❓
nav.faq

Common questions answered

✉️
Contact

Get in touch with us

⭐
ఓపెన్ సోర్స్

GitHub లో బహిరంగంగా నిర్మించబడింది

నేర్చుకోవడం ప్రారంభించండి - ఇది ఉచితం
AI EducademyAIEducademy

MIT లైసెన్స్ - ఓపెన్ సోర్స్

నేర్చుకోండి

  • ప్రోగ్రాములు
  • పాఠాలు
  • ల్యాబ్

సంఘం

  • GitHub
  • సహకరించండి
  • ప్రవర్తనా నియమావళి
  • మా గురించి
  • తరచుగా అడిగే ప్రశ్నలు

మద్దతు

  • కాఫీ కొనండి ☕
  • footer.terms
  • footer.privacy
  • footer.contact
AI & ఇంజనీరింగ్ ప్రోగ్రామ్‌లు›✏️ AI Sketch›పాఠాలు›Heaps మరియు Priority Queues
⛰️
AI Sketch • మధ్యస్థం⏱️ 18 నిమిషాల పఠన సమయం

Heaps మరియు Priority Queues

Heap అంటే ఏమిటి?

Heap అనేది ప్రతి parent heap property ని సంతృప్తిపరిచే complete binary tree - ఎల్లప్పుడూ children కంటే చిన్నది (min-heap) లేదా పెద్దది (max-heap). "Complete" అంటే చివరి level తప్ప ప్రతి level నిండి ఉంటుంది, చివరిది ఎడమ నుండి కుడికి నిండుతుంది.

       1            Min-heap
      / \
     3   5
    / \
   7   4

ఇది complete కాబట్టి, flat array లో నిల్వ చేస్తాం - pointers అవసరం లేదు. Index i కోసం: left child = 2i + 1, right child = 2i + 2, parent = (i - 1) // 2.

Min-Heap vs Max-Heap

| లక్షణం | Min-Heap | Max-Heap | |----------|----------|----------| | Root | అతి చిన్న element | అతి పెద్ద element | | Parent ≤ Children? | ✅ అవును | ❌ కాదు (≥) | | Extract ఇస్తుంది | Minimum | Maximum |

Python heapq డిఫాల్ట్‌గా min-heap. Max-heap కోసం, insert చేసేటప్పుడు విలువలను negate చేసి, extract చేసేటప్పుడు మళ్ళీ negate చేయండి.

Insert మరియు Extract - అడుగు అడుగునా

Insert - చివరికి push చేసి, bubble up చేయండి (చిన్నదైనంత వరకు parent తో swap):

import heapq
h = [1, 3, 5, 7]
heapq.heappush(h, 2)  # h [1, 2, 5, 7, 3] అవుతుంది

Extract min - root ను చివరి element తో swap చేసి, చివరిది తొలగించి, sift down చేయండి (చిన్న child తో swap):

smallest = heapq.heappop(h)  # 1 రిటర్న్ చేస్తుంది

రెండు operations O(log n) లో నడుస్తాయి ఎందుకంటే tree ఎత్తు log n.

Min-heap పై insert bubble-up మరియు extract sift-down చూపే diagram
Insert పైకి bubble అవుతుంది; extract-min కిందకు sift అవుతుంది.

Heapify - O(n) లో Heap నిర్మించడం

heapq.heapify(arr) ను call చేయడం list ను O(n) లో heap గా మారుస్తుంది, O(n log n) కాదు. ఇది bottom-up పనిచేస్తుంది, ప్రతి non-leaf node ను కిందకు sift చేస్తుంది. CS లో అత్యంత ఆశ్చర్యకరమైన complexity ఫలితాలలో ఇది ఒకటి.

పాఠం 6 / 100% పూర్తి
←Trees మరియు Graphs దృశ్యీకరణ

Discussion

Sign in to join the discussion

lessons.suggestEdit
in-place
🤯
Heap నిర్మించడం O(n), O(n log n) కాదు. చాలా nodes అడుగున ఉంటాయి మరియు కింద sift అవ్వాల్సిన అవసరం చాలా తక్కువ - గణితం linear time ఇస్తుంది.

Priority Queue Abstraction

Priority queue మీకు ఎల్లప్పుడూ అత్యధిక-ప్రాధాన్యత item కు ప్రాప్యత ఇస్తుంది. Insert మరియు extract రెండూ O(log n) కాబట్టి Heaps ఉత్తమ implementation. "ఇప్పటివరకు ఉత్తమ item ఇవ్వు" అనే అవసరం ఉన్నప్పుడల్లా ఉపయోగించండి.

పాటర్న్: Top-K సమస్యలు

"Unsorted array లో K అతిపెద్ద elements కనుగొనండి."

K పరిమాణం min-heap ఉంచండి. ప్రతి element కోసం push చేయండి; heap K కంటే పెరిగితే, అతి చిన్నదాన్ని pop చేయండి. మిగిలేవి K అతిపెద్దవి.

import heapq
def top_k(nums, k):
    return heapq.nlargest(k, nums)

సమయం: O(n log k) - k ≪ n అయినప్పుడు sorting కంటే చాలా మెరుగు.

🧠త్వరిత తనిఖీ

1 మిలియన్ entries నుండి అత్యధిక 5 scores కావాలి. ఏ heap రకం మరియు పరిమాణం?

పాటర్న్: K Sorted Lists Merge చేయడం

ప్రతి list head ను min-heap లో push చేయండి. అతి చిన్నదాన్ని pop చేసి, ఆ list నుండి తదుపరి element ను push చేయండి. అన్ని lists అయిపోయే వరకు పునరావృతం చేయండి. సమయం: O(N log K) ఇక్కడ N మొత్తం elements.

పాటర్న్: Data Stream నుండి Median

రెండు heaps నిర్వహించండి: దిగువ సగానికి max-heap మరియు ఎగువ సగానికి min-heap. వాటి పరిమాణాలు గరిష్టంగా 1 తేడా ఉండేలా balance చేయండి. Median ఎల్లప్పుడూ ఒకటి లేదా రెండు roots వద్ద ఉంటుంది.

దిగువ సగం (max-heap): [1, 2, 3]  ← max = 3
ఎగువ సగం (min-heap): [4, 5, 6]  ← min = 4
Median = (3 + 4) / 2 = 3.5
🧠త్వరిత తనిఖీ

రెండు-heap median విధానంలో, కొత్త element ముందు ఎక్కడికి వెళ్తుంది?

Scheduling సమస్యలు

Scheduling లో heaps రాణిస్తాయి: meeting rooms (ముందుగా ముగిసే సమయం track చేయడం), cooldowns తో task scheduling, లేదా CPU job queues. కీలక అంతర్దృష్టి - heap "తర్వాత ఏది ముగుస్తుంది" అనేదాన్ని సమర్థవంతంగా track చేస్తుంది.

🤔
Think about it:మీకు minimum మరియు maximum రెండూ సమర్థవంతంగా కావాలంటే, ఒకే heap సరిపోదు. ఏ data structure combination ఉపయోగిస్తారు?

Heap vs Sorted Array vs BST ఎప్పుడు

| అవసరం | ఉత్తమ ఎంపిక | ఎందుకు | |--------|-------------|--------| | పునరావృత min/max extraction | Heap | O(log n) insert + extract | | Static data, ఒకసారి sort | Sorted array | O(n log n) ఒకసారి, O(1) ప్రాప్యత | | Range queries + order stats | Balanced BST | అన్నింటికీ O(log n) | | Stream నుండి Top-K | K పరిమాణ Heap | O(n log k) మొత్తం |

🧠త్వరిత తనిఖీ

Min-heap లో ఏ operation O(1)?

Complexity సంగ్రహం

| Operation | సమయం | |-----------|------| | Insert | O(log n) | | Extract min/max | O(log n) | | Peek min/max | O(1) | | Heapify | O(n) | | n items నుండి Top-K | O(n log k) |

🤔
Think about it:Heap array లో store అయినా binary search ఎందుకు చేయలేరు? Heap property నిజంగా ఏ sorted order ను guarantee చేస్తుందో ఆలోచించండి.

📚 మరింత చదవండి

  • NeetCode - Heap / Priority Queue - heap సమస్యలతో visual roadmap
  • Tech Interview Handbook - Heap - సంక్షిప్త పాటర్న్‌లు మరియు చిట్కాలు
  • Python heapq docs - ఉదాహరణలతో అధికారిక module reference