ערימה בינומית – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ זוטות
תגית: הוספת תבנית לשינויים בערך
בטעות הסרתי את המקטע הזה בתיקון הקודם
שורה 19:
* '''מחיקת המינימום''': מחזיקים [[מצביע]] לאיבר המינימלי, כך שמציאתו לוקחת <math>O(1)</math>. מוחקים אותו. כיוון שילדיו של עץ מדרגה i הם שורשים של עצים מדרגות
i-1{{כ}},...,0,1, מבצעים מיזוג (המתואר בפיסקה הבאה) בין העצים הללו לשאר הערימה. סיבוכיות: <math>O(\log n)</math>.
* '''מיזוג''': בהינתן שתי ערימות, ממזגים אותן בדומה ל[[חיבור]] בינארי: עוברים על הדרגות מהקטנה לגדולה, ובכל דרגה, אם יש רק עץ אחת מדרגה כזו מכניסים לערימה המאוחדת, ואם יש שניים, מאחדים אותם ומתייחסים אליהם כאל עץ מדרגה גדולה יותר (בדומה לנשא בחיבור רגיל) כיוון שישנם כ-log n עצים בכל ערימה, הסיבוכיות היא <math>O(\log n)</math>.
 
* '''מחיקה''': מחיקת אלמנט בערימה דורשת מחיקת הצומת המייצג אותו עם אביו, ואז שוב עד לשורש (פעולה זאת לוקחת כעומק המקסימלי של עץ שהוא כ-log n), ואז מוחקים אותו וממזגים את בניו עם שאר הערימה. סיבוכיות: <math>O(\log n)</math>.
* '''הקטנת מפתח''': בהינתן מצביע לצומת מסוים, מקטינים את המפתח, ואם הוא קטן מאביו, מחליפים ביניהם, ושוב אם הוא קטן מאביןמאביו מחליפים בינהיםביניהם עד שהוא גדול מאביו (או מגיע לשורש). <math>O (\log n)</math>.
 
==וריאציות==