Menu
Coddy logo textTech

איך זה עובד?

שיעור 3 מתוך 9 בקורס מיון ערימה – סדרת DSA של Coddy.

ערימה בינארית מאוחסנת במערך רגיל. עבור הצומת באינדקס i (מתחיל מ-0), הילדים שלו נמצאים באינדקסים 2*i + 1 ו-2*i + 2. זה כל הטריק שמאפשר לעץ להישמר במערך.

תהליך שלב אחר שלב:

  1. בנו ערימת מקסימום: סדרו מחדש את המערך כך שכל צומת אב יהיה גדול מ- או שווה לילדיו. הערך הגדול ביותר יגיע לאינדקס 0.
  2. חלצו את המקסימום: החליפו בין השורש (הערך הגדול ביותר) לאיבר האחרון בערימה, ואז צמצמו את הערימה באחד, כך שהערך הגדול ביותר נמצא כעת בסוף, במיקומו הסופי במערך הממויין.
  3. תקנו באמצעות sift-down: ייתכן שהשורש החדש לא יהיה במקומו, לכן הורידו אותו בערימה (החליפו אותו עם הילד הגדול יותר שלו וחזרו על הפעולה) עד שתכונת הערימה תתקיים שוב.
  4. חזרו על הפעולה עד שהערימה תהיה ריקה. המערך ממוין כעת בסדר עולה.

דוגמה עבור [4, 10, 3, 5, 1]:

  • בנו ערימת מקסימום: [10, 5, 3, 4, 1].
  • החליפו בין השורש 10 לאיבר האחרון והורידו אותו בערימה, ואז חזרו על הפעולה עבור 5, 4, 3.
  • תוצאה: [1, 3, 4, 5, 10].

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה מיון ערימה – סדרת DSA

תרגלו בעצמכם: קומפיילר C אונליין