10
1 ענו על ארבע השאלות הבאות על גבי הטופס ובמקומות המתאימים. המחברת תשמש לטיוטה בלבד! אנו לא אוספים את מחברות הטיוטה והן יילקחו לגריסה. בסעיפים בהם קיימת דרישת זמן לאלגוריתם שעליכם להציע, יש לתת הסבר מספק שאכן עמדתם בדרישת הזמן שבשאלה. ניתן להשתמש במבני נתונים ואלגוריתמים שנלמדו בכיתה ללא פירוט של המימוש שלהם אלא אם השאלה דורשת במפורש פירוט של המימוש. במידה וקיים יותר ממימוש אחד ניתן לבחור כל מימוש שמתאים לזמני ה ריצה המבוקשים ולתנאי השאלה. בכל השאלות, מספר השורות העומדות לרשותכם בדף התשובות רומז על אורך התשובה הנדרשת. הקפידו על כתב יד ברור. תשובות מסורבלות לא תזכינה בניקוד מלא. מומלץ לכתוב פתרון לשאלה קודם במחברת הטיוטה, ורק לאחר מכן להעתיק אותו בצורה נקייה לטופס. במידה שאינכם יודעים את התשובה לסעיף שלם כלשהו, רשמו" לא יודע/ ת" ( במקום תשוב) ה ותזכו ב- 20% מניקוד הסעיף) מעוגל מטה.) אם רשום" לא יודע/ ת," ההתייחסות היא לכל הסעיף. שימו לב שמשפט המסטר מצורף למטה. בהצלחה! משפט המסטר: יהיוa 1 , b > 1 קבועים, תהיf(n) פונקציה, ותהייT(n) פונקציה המוגדרת על השלמים האי- שליליים על ידי נוסחת הנסיגה הבאה:() = ( ) +() . אזי: ) ( ) / ( : , 1 and ) ( : 0 ) ( ) ( : 0 ) ( log ) ( 0 0 log log log log log n cf b n af n n n c n n f n n f n O n f n f n n n n T a a a a a b b b b b תאריך הבחינה:21/02/2017 שם המרצה: דר ' רבייב אירינה גב' סדצקי שם המתרגל:- קגן מרינה, מר רוקח עמית שם הקורס: יסודות מבני נתונים מספר הקורס:202-1 -9191 שנה:2017 א' מועד: א' סמסטר: משך הבחינה: שלוש שעות חומר עזר: אסור

The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

1

!ענו על ארבע השאלות הבאות על גבי הטופס ובמקומות המתאימים. המחברת תשמש לטיוטה בלבד אנו לא אוספים את מחברות הטיוטה והן יילקחו לגריסה.

לאלגוריתם שעליכם להציע, יש לתת הסבר מספק שאכן עמדתם בדרישת בסעיפים בהם קיימת דרישת זמן הזמן שבשאלה.

אלא אם –ניתן להשתמש במבני נתונים ואלגוריתמים שנלמדו בכיתה ללא פירוט של המימוש שלהםניתן לבחור כל מימוש –השאלה דורשת במפורש פירוט של המימוש. במידה וקיים יותר ממימוש אחד

ריצה המבוקשים ולתנאי השאלה. שמתאים לזמני ה

הקפידו התשובה הנדרשת. אורך על רומז התשובות בדף לרשותכם העומדות השורות מספר השאלות, בכל במחברת קודם לשאלה פתרון לכתוב מומלץ מלא. תזכינה בניקוד לא מסורבלות תשובות ברור. יד כתב על

.לטופס נקייה בצורה אותו מכן להעתיק לאחר ורק הטיוטה,

ב ותזכו ה(תשוב במקום) "ת/יודע לא" רשמו ,כלשהו שלם לסעיף התשובה את יודעים שאינכם במידה- .הסעיף לכל היא ההתייחסות", ת/יודע לא" רשום אם(. מטה מעוגל( הסעיף מניקוד 20%

.שימו לב שמשפט המסטר מצורף למטה

בהצלחה!

:משפט המסטר

-פונקציה המוגדרת על השלמים האי T(n)פונקציה, ותהיי f(n)קבועים, תהי a ≥ 1 , b > 1 יהיו

𝑇(𝑛) שליליים על ידי נוסחת הנסיגה הבאה: = 𝑎𝑇 (𝑛

𝑏) + 𝑓(𝑛):אזי .

)()/(:,1

and )(:0

)(

)(:0

)(

log)(

00

log

log

log

log

log

ncfbnafnnnc

nnf

nnf

nOnf

nf

nn

n

nT

a

a

a

a

a

b

b

b

b

b

21/02/2017תאריך הבחינה:

' רבייב אירינהדר שם המרצה:

קגן מרינה,-שם המתרגל: גב' סדצקי

מר רוקח עמית

יסודות מבני נתונים שם הקורס:

9191- 202-1 מספר הקורס:

סמסטר: א' מועד: א' 2017שנה:

שלוש שעות משך הבחינה:

אסור חומר עזר:

Page 2: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

2

(נק' לכל סעיף 5, נק' 25) 1 שאלה

יש לסמן את התשובה הנכונה מתוך מספר תשובות מוצעות.בכל אחד מהסעיפים הבאים

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

? h=4בגובה AVLמהו מספר מינימאלי של צמתים שיכולים להיות בעץ .1

15 (א) 12 (ב) 5 (ג) 31 (ד) .אף אחת מהתשובות לעיל (ה)

.גובה העץ מוגדר להיות מספר הקשתות במסלול הכי ארוך משורש לעלה תזכורת:

הסבר:

)כמו שעשיתי בהוכחת משפט על גובה עץ hבגובה AVLאת מספר הצמתים המינימאלי בעץ hW-נסמן ב

AVL.)

=10W הוא צומת בודד( 0)העץ בגובה

= 2 1W

h :+12-h+W1-h=WhW < 2ועבור כל

124W=סחת הנסיגה , ונקבל ודרך נ 4Wנמצא את ,מכאן

.nבגודל Aהמיוצגת על ידי מערך , (n ≥ 3) איברים nבעלת Aנתונה ערימת מינימום .2

.שונים זה מזה A-כל האיברים ב

...

הערימה?באילו תאים )אינדקסים( יכול להימצא החציון של

⌋עד 1-בכל אחד מהאינדקסים מ (א)𝑛

2⌋.

⌉-בכל אחד מהאינדקסים מ (ב)𝑛

2 .nעד ⌈

.1-לפרט בכל אחד מהאינדקסים (ג) אף אחת מהתשובות לעיל. (ד)

חציון של קבוצת האיברים הוא האיבר שמספר האיברים הגדולים או ששווים לו שווה למספר תזכורת:

אי זוגי של איברים, אז החציון שווה לערכו של האיברים שקטנים או שווים לו. אם בקבוצה יש מספר

האיבר האמצעי בקבוצה כאשר הערכים מסודרים בסדר עולה. כאשר בסדרה יש מספר זוגי של איברים,

נתייחס למספר השמאלי בין שני האיברים שבאמצע הקבוצה )כאשר הערכים מסודרים בסדר עולה ( כאל

החציון.

.7, החציון הוא 35, 34, 11, 7, 4, 2, 2לדוגמה: לקבוצה:

n

A

1 2 3

Page 3: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

3

:A[1..n]למיון המערך הבא האלגוריתם נתון .3

מיין אותו בעזרת מיון הכנסה –שלושה איברים מאם המערך מכיל פחות -

אחרת -

o באופן רקורסיבי שני שליש האיברים הראשונים מייןA[1. .2

3𝑛]

o שני שליש האיברים האחרונים יבאופן רקורסיב מייןA[𝑛

3. . 𝑛]

o מיין באופן רקורסיבי שני שליש האיברים הראשוניםA[1. .2

3𝑛]

?nבגודל A על מערך הקלטהאלגוריתם זמן ריצה של מהו

Θ(𝑛𝑙𝑜𝑔𝑛) (א) Θ(𝑛) (ב) Θ(𝑛2) (ג) אף אחת מהתשובות לעיל (ד)

הסבר:

החציון אינו יכול להופיע בשורש, שכן איבר שבשורש הוא איבר מינימאלי.

. השאלה בעזרת הדוגמאות ניתן לראות שחציון יכול להופיע גם בחצי השמאלי וגם בחצי הימני של המערך

. התשובה היא לא. למשל, עבור ערימה בגודל n..2היא האם הוא תמיד יכול להופיע בכל אחד מהאינדקסים

-איברים שקטנים מהחציון ובתת עץ המושרש ב 5, כיוון שיש רק 2החציון אינו יכול להופיע באינדקס 11

A[2] (.11איברים )תנסו לצייר מבנה של ערימה בגודל 6צריכים להופיע

לכן התשובה הנכונה היא ד.

ודות.מי שסימן תשובה ג' קיבל את כל הנק

הסבר: נוסחת נסיגה שמתארת זמן ריצה של הפונקציה היא

𝑇(𝑛) = 3𝑇 (2

3𝑛) + 𝑂(1)

𝑇(𝑛)שהפתרון שלה הוא = 𝛩(𝑛𝑙𝑜𝑔3

2

3 )שימוש בשיטת המסטר או שיטת האיטרציה( (

Page 4: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

4

. AVLמקיים את תכונת האיזון של עץ Tצמתים. רוצים לבדוק האם nבעל Tנתון עץ חיפוש בינארי .4

מהו זמן ריצה של האלגוריתם היעיל ביותר לבדיקה הנ"ל במקרה הגרוע?

מצביעים לבנים ומצביע לאב.שדות: מפתח, 4הניחו שכל צומת בעץ מכיל רק

.Θ(𝑙𝑜𝑔 𝑛) (א) .Θ(𝑛 𝑙𝑜𝑔𝑛) (ב) .Θ(𝑛) (ג) .אף אחת מהתשובות לעיל)ד(

של ערימת מקסימום )משמאל לימין(: preorderנתונה סריקת .5

40, 35, 25, 15, 10, 21, 8, 20, 11, 7

ניתן לשחזר את הערימה מהסריקה באופן חד משמעי. טענה:

סמנו את התשובה הנכונה.

הטענה נכונה (א)

הטענה לא נכונה (ב)

הסבר:

(.0את הגובה שלו )גובה העלה הוא על הצמתים ובכל צומת מעלים כלפי מעלה postorderעוברים בשיטת

.1בכל צומת, בודקים האם הפרש הגבהים של שני תת עצים שלו הוא לכל היותר

הסריקה ולדווח שהעץ אינו מאוזן.אם לא, אפשר לעצור את

(. 1מקסימום בין הגבהים של שני תת עצים +שהוא אחרת, מגלגלים כלפי מעלה את הגובה של הצומת )

נחזיר תשובה חיובית, העץ מקיים את תכונת האיזון. –מאוזנים וכולםאם עברנו על כל הצמתים

.Θ(𝑛)והינו postorderזמן ריצה הוא בעצם זמן ריצה של

הסבר:

מוגדר באופן חד משמעי.של העץ פירושו שמבנה –ערימה היא עץ בינארי שלם

.ומשבצים את חזרה את הערכים preorderעוברים על הערימה בשיטת

Page 5: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

5

נק'( 25) 2שאלה

,יעיל ככל האפשר ,)אפשר במילים( אלגוריתם תארומספרים ממשיים. nהמכילה Sנתונה מחסנית

אחרי המיון המספר הגדול ביותר אמור להיות . ספרים במחסנית מהמספר הקטן לגדולהממיין את המ

. במחסנית עזר אחת ומספר קבוע של משתני עזר פשוטיםנית. ניתן להשתמש ש המחסברא

נתחו את סיבוכיות זמן הריצה של האלגוריתם שתיארתם.

.isEmpty, push, popבפעולות שימו לב: בעבודה עם המחסנית אפשר להשתמש אך ורק

הינו קבוע. isEmpty, push, popהניחו כי זמן ריצה של הפעולות

תוך ו tmp עזר למחסנית S מ איברים שנעביר כך י”ע ,הנתונה במחסנית יש איברים כמה רופנס ,בהתחלה .Sלנוחות נחזיר את האיברים למחסנית (.sizeם )משתנה אות נספורכדי העברה

isize downto 1בלולאה

o שנעביר כך י”ע מינימלי איבר נחפש i מ יםאיבר S ל tmp האיבר את נזהה מעבר כדי ותוך .בצד אותו נשמור ,המינימלי

o במחסנית ת האיבר המינימאלי שמצאנוא נשים S . o מ בחזרה האיברים כל את נעביר tmp ל S.

Sort-Stack(S)

Let tmp be an empty stack

size 0

while (NOT S.isEmpty()) // transfer the elements from S to tmp and count the size of S

sizesize + 1

tmp.push( S.pop() )

while (NOT tmp.isEmpty()) // transfer the elements back to S

S.push( tmp.pop() )

for(isize downto 1){

minS.pop()

for(j1 to i-1){ // find minimum in S

x S.pop()

if(x < min){

tmp.push(min)

min x

}else

tmp.push(x)

}

S.push(min) // push min to S

} .2O(n(א יהאלגוריתם המתואר לעיל ה סיבוכיות זמן ריצה של

Page 6: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

6

נק'( 25) 3שאלה

𝒔קדקוד נקרא ל. G = (V, E) מכוון גרףיהי נתון ∈ 𝑽 מ אם קיים מסלול מקור-𝒔 אחר לכל קדקוד 𝒗 ∈ 𝑽

מקור, שכן קיים ממנו מסלול שבציור הוא 1 קדקוד. לדוגמה, 𝒔 א קיים מסלול מאף קדקוד בגרף אלבגרף, ול

מקדקודי הגרף ולא קיים מסלול מאף קדקוד אליו.לכל אחד

𝑠 קדקודו G = (V,E)מכוון גרף מקבלש, יעיל ככל האפשר ,הציעו )במילים( אלגוריתם נק'( 7) (א ∈ 𝑉 בודק ו

הוא קדקוד מקור. נתחו את זמן הריצה של האלגוריתם שהצעתם. sהאם

.(adjacency lists)הניחו שהגרף מיוצג על ידי רשימת סמיכויות

אינו מקור )ישנם קדקודים s-נדווח ש . אם בתום הסריקה נשארו קדקודים לבנים,s-מ BFSנריץ סריקת

O(V+E). זמן ריצה של השלב הזה s-שלא ניתן להגיע אליהם מ

.sכעת נבדוק האם ניתן להגיע אל

מופיע ברשימת הסמיכות של אחד הקדקודים. אם כן, נחזיר sנעבור על רשימת סמיכויות ונבדוק האם

.O(V+E)לא יכול להיות מקור כי קיים אליו מסלול. זמן ריצה של השלב הזה גם הוא sתשובה שלילית.

אם שתי הבדיקות עברו בהצלחה, נחזיר תשובה חיובית.

O(V+E)זמן ריצה הכולל הינו

(DAG) מכוון חסר מעגלים, שמקבל גרף יעיל ככל האפשר ,אלגוריתם )במילים( הציעו נק'( 18) (ב

G = (V,E) בעונה על השאלה האם יש קדקוד מקור ו-G. .נתחו את זמן הריצה של האלגוריתם שהצעתם

.(adjacency lists)הניחו שהגרף מיוצג על ידי רשימת סמיכויות

O(V+E)הוא חסר מעגל, ניתן לבצע מיון טופולוגי. זמן ריצה Gכיוון שלפי הנתון

.s-הקדקוד היחיד שמועמד להיות מקור הוא הקדקוד הראשון במיון הטופולוגי. נסמנו ב

בגרף. אחרת, מקור ןאינדווח ש אם בתום הסריקה נשארו קדקודים לבנים,. O(V+E)זמן ריצה .s-מ BFSנריץ

נחזיר תשובה חיובית.

.O(V+E)זמן ריצה הכולל הינו

Page 7: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

7

נקודות( 25) 4שאלה

שהוא מספר כל עובד מזוהה ע"י ת"ז שלו .אוניברסיטהלממש מבנה נתונים לניהול קבוצת העובדים ב התבקשתם

כן לכל עובד מצורף מספר המציין את המשכורת החודשית שלו. ייתכנו מספר עובדים בעלי משכורת -כמו .ייחודי

.N חסום על ידי אוניברסיטההזהה. הניחו שבכל רגע נתון מספר עובדי

על המבנה לתמוך בפעולות הבאות:

זמן ריצה תאור פעולה שם פעולה

Init(N) חסם עליון על מספר הינו Nאתחול מבנה נתונים ריק.

.באוניברסיטהשיכולים לעבוד העובדים

)NO(

במקרה הגרוע

Insert(e)

e.idמכיל שני שדות: ת"ז eלמבנה. eד חדש בוהוספת ע

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

תבדקו זאת.

O(log n) במקרה הגרוע

Salary(id) . idהחזרת מספר המציין משכורת של העובד בעל ת"ז

נמצא במבנה ואל תבדקו זאת. idניחו כי עובד בעל ת"ז הO(1) צפוי

Delete(id) מהמבנה. idמחיקת עובד בעל ת"ז

.ואל תבדקו זאת נמצא במבנה idעובד בעל ת"ז כי וניחהO(log n)

במקרה הגרוע

LessThan(salary) העובדים )כמה עובדים יש( שהמשכורת שלהם החזרת מספר

.salary-קטנה או שווה לO(log n)

במקרה הגרוע

Decile() ⌉-החזרת משכורת שרק ל

𝑛

10עובדי האוניברסיטה יש ⌈

משכורת גדולה או שווה לה.

O(1) במקרה הגרוע

n – מספר העובדים במבנה ברגע נתון .n ≤ N.

לא חסוםחיובי ת"ז הינו מספר שלם

תארו בקצרה את מבנה הנתונים, ספקו אלגוריתם לכל אחת מהשיטות ונתחו בקצרה את זמן הריצה של הפעולות.

נקודות בלבד. 12פתרון שתומך רק בארבע הפעולות הראשונות יקבל

Page 8: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

8

קיימים מספר פתרונות. להלן אחד מהם.

-מבנה נתונים יהיה מורכב מ

.idלפי העובדים, השומר את AVL ,T1עץ (1

המציין את כמות העובדים numבכל צומת נוסיף שדה .salaryלפי העובדים, השומר את AVL ,T2עץ (2

1כבר נמצאת בעץ ואז רק נוסיף e.salaryנבצע חיפוש ונבדוק האם T2-בעת ההכנסה לבעלי משכורת זו.

עדיין לא נמצאת בעץ, אז נכניס צומת חדש ונעדכן שדה e.salaryשל הצומת המתאים. אם numלשדה

num 1שלו להיות.

סופר גם sizeבתת עץ המושרש בצומת )שדה עובדיםמספר ה – sizeבנוסף, כל צומת בעץ יכיל שדה

אלו על מנת לתמוך ותנשתמש בשד(. בתוכו numכפילויות של משכורת, כלומר מחשיב את השדות

.Decile -ו LessThanות בפעול

מנוהלת בשיטה גיבוב עם שירשור. id.H, המאחסנת את העובדים לפי Hטבלת גיבוב, (3

⌉ שישלאיבר T2בעץ המצביע decמצביע (4𝑛

10 משכורות שגדולות או שוות לו. ⌈

5) n – מספר העובדים במבנה

.T1, T2, H-קיימות הצבעות הדדיות בין איברים ב

תאור פעולה שם פעולה

Init(N)

במקרה הגרוע.O(N) –ואיתחול כל התאים O(N)בגודל Hיצירת טבלת גיבוב

במקרה הגרוע. T2 – O(1)-ו T1יצירת עצים ריקים

במקרה הגרוע. null - O(1)-להצביע ל decלאתחל את

במקרה הגרוע. O(1) - 0להיות nלאתחל את

במקרה הגרוע. O(N)זמן ריצה הכולל

Insert(e)

nn+1

במקרה הגרוע. e.salary .- O(1)לפי H-ל eנכניס את

במקרה הגרוע e.id .- O(log n)לפי T1-ל eנכניס את

במקרה הגרוע e.salary .- O(log n)לפי T2-ל eנכניס את

לשדה 1כבר נמצאת בעץ ואז רק נוסיף e.salaryנבצע חיפוש ונבדוק האם T2-בעת ההכנסה ל

num של הצומת המתאים. אםe.salary עדיין לא נמצאת בעץ, אז נכניס צומת חדש ונעדכן

במקרה הגרוע. O(log n) -מתבצע ב e.salary. חיפוש אחר 1שלו להיות numשדה

)גם אם רק של כל הצמתים במסלול ההכנסה sizeלשדה 1מוסיפים T2 -במהלך ההכנסה ל

של הצמתים שהתת עצים size. כמו כן, אם בוצעה רוטציה, יש לעדכן שדה (numעודכן שדה

שלהם השתנו )ישנם מספר קבוע של צמתים כאלו(.

אינו משפיע על זמן ריצה אסימפטוטי. sizeעדכון שדות

Page 9: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

9

כאשר נקרא לה בעזרת פונק' רקורסיבית הבאה הבא dec-כמו כן נעדכן מצביע ל

) findDecile(v.root, ⌈𝑛

10⌉ .

findDecile(Node v, index i){

if (i < v.rigth.size)

return findDecile(v.rigth, i)

elseif (i <= v.rigth.size + num)

return v

else

return findDecile(v.left, i – v.rigth.size-v.num)

}

במקרה הגרוע. O(log n)הוא dec עדכוןזמן ריצה של

במקרה הגרוע. O(1) - בשלושת המבנים. eיש ליצור הצבעות הדדיות בין

במקרה הגרוע. O(log n)זמן ריצה הכולל

Salary(id) והחזרת המשכורת שלו. H-ב idחיפוש עובד בעל ת"ז

צפוי. O(1)זמן ריצה

Delete(id)

nn-1

)או רק נעדכן T2-גם מ e. בעזרת מצביעים הדדיים נמחק את T1-מ idמחיקת עובד בעל ת"ז

אם עדיין קיימים עובדים בעלי משכורת num-1של הצומת המתאים להיות numאת שדה

כן רק דוגם אם עכלפי השורש ) e-של הצמתים שהיו במסלול מ sizeמשדות 1זו(. יש להוריד

של הצמתים שתת עצים size(. כמו כן, במידה ומבצעים רוטציות, יש לעדכן שדות numשדה

.שלהם התשנו בעקבות הרוטציה

AVL - O(log n)עדכונים אלו אינם משפיעים על זמן ריצה אסימפטיטי של מחיקה בעץ

במקרה הגרוע

במקרה הגרוע, כי O(1)-מתבצעת ב H-מחיקה מ .H-ומגם eבעזרת מצביע הדדי נמחק את

נתון מצביע לאיבר שרוצים למחוק.

במקרה הגרוע. O(log n)זמן ריצה הכולל

LessThan(salary)

.0להיות counterנאתחל משתנה עזר

במסלול החיפוש: v. עבור כל צומת T2-ב salaryנבצע חיפוש של

להיות counter( נעדכן את v.key< salary-ימינה )סימן ש v-אם פנינו מ -

countercounter+v.left.size+v.num

.counterנסיים ונחזיר את –( T2-לא נמצא ב salary)סימן שערך null-אם המסלול נגמר ב

להיות counter( נעדכן את v.key = salaryעם vאחרת )המסלול נגמר בצומת

countercounter+v.left.size+ v.num ונחזיר אתcounter.

במקרה הגרוע שכן יורדים כי גובה העץ. O(log n)זמן ריצה הינו

Decile() איבר עליו מצביע החזרתdec. – O(1) במקרה הגרוע

Page 10: The Department of Computer Science - Home - Newfds171/wiki.files/ma-sol.pdf · 2017. 3. 15. · 3:A[1..n] ךרעמה ןוימל אבה םתירוגלאה ןותנ .3 הסנכה ןוימ

10