( n) ( ) ( ) שאלה 1: שאלה 2: שאלה 3: (n 5) = Θ. ב. אם f 1, f 2, g 1, g 2. .g 1 *g 2 = Ω(f 1 *f 2 ) , g. ג. ) n.n! = θ(n*2. n) f ( אז ד. אם ה. אם ו.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "( n) ( ) ( ) שאלה 1: שאלה 2: שאלה 3: (n 5) = Θ. ב. אם f 1, f 2, g 1, g 2. .g 1 *g 2 = Ω(f 1 *f 2 ) , g. ג. ) n.n! = θ(n*2. n) f ( אז ד. אם ה. אם ו."

Transcript

1 נתונים מבני לקט שאלות ממבחנים - 0 -

2 ניתוח סדרי גודל ב. שאלה 1: הוכיחו או הפריכו את הטענות הבאות ישירות על ידי שימוש בהגדרות 3 3 א. ) =Ω( log( ) =Ω( ) ( ) log(log ) = O ( 5) log (+ 5) = O() 6 ( 10 ) =Θ( 10 ) ג. ד. ה. ( ) log( ) =Ω log( ). log( + 3 ) = Θ(log( )) ( ) =Θ log(!) =Θ( log( )) ו. ז. ח. ט.. הוכיחו עפ"י הגדרה את החסם שמצאתם. f( ) = 1 + שאלה : מצאו חסם הדוק (בסדר גודל) עבור הפונקציה ) 1 f =O(g ),f 1 =O(g אז ) 1 f =O(g ),f 1 =O(g אז שאלה 3: הוכיחו או הפריכו: א. אם f 1, f, g 1, g.g 1 *g = Ω(f 1 *f ) ב. אם f 1, f, g 1, g f.f g 1 = O(g 1 ) פונקציות חיוביות עולות לאינסוף המקיימות: פונקציות חיוביות עולות לאינסוף המקיימות: f ( g ) f = Θ( ) 1 = Θ 1, g. f ( ) = Ο ( ) f ( ) = Ο ( ) ) f ( אז = ג. ).! = θ(* i= 0 f ( ) log( ) = Ο i ( ) ד. אם ה. אם ו. אם אז פונקציות חיוביות עולות לאינסוף המקיימות: אז f 1 f, g1,, g f1 f g = Ο g 1-1 -

3 . f ( ) =Ο( h( )) שאלה 4: תהיינה, gh f, פונקציות מ- הוכיחו ישירות מההגדרה: אם + ל-. f ( ) = Ο( g( )) ו-(( ( h g ( ) =Ο( אז f () i =Ο g() i i= 1 i= 1, אזי f = Ο( g) שאלה 5: הוכיחו כי אם 1 i i= log( ). f( ) = f ( ) = Θ(log( )) f ( ) =Θ( log( )) f ( ) = Θ( log( )) אף אחת מהתשובות אינה נכונה.. f ( ) = log( i) i= log( ). f ( ) =Θ( log(log( ))). f ( ) =Θ( log( )). f ( ) = Θ( log( )). f ( ) = Θ( log(log( ))) אף אחת מהתשובות אינה נכונה. שאלה 6: 1) נגדיר: א) ב) ג) ד) ) נגדיר: א) ב) ג) ד) ה) it fuc (it ){ it sum, i, j,k; שאלה 7: תנו חסם הדוק לזמן ריצת הפונקציות הבאות: א. sum = 0; for(i= log( ) ; i<= ; i++) for(j=1; j<= i; j++) for(k=1; k<=*; k+= i*i) sum++; retur sum; - -

4 it fuc (it ){ it sum, i, j,k; ב. sum = 0; for(i = 1; i ; i *= ) for(j = 1; j i; j *= ) for(k = 1; k <= j; k *= ) sum++; retur sum; ci>>; for(i=; i>=1; i--){ x=1; while (x<i) x *= ; while (x>) x = sqrt(x); ג. it fuc (it ){ it sum, i, j; sum = 0; for(i = 1; i <= log( ) ; i++) for(j = 0; j < ; j+=i) sum++; ד. for(i = 1; i< ; i++){ j = i; while(j > ){ sum++; j = j ; retur sum; הערה: הניחו שכל קריאה לפונקציות,log ו- (1)Θ. לוקחת - 3 -

5 it fuc (it ){ it sum, i, j, k, p; sum = 0; ה. for(i = 1; i <= ; i++) for(j = 0; j < ; j+=i) sum++; for(i = 1; i<= log( ) ; i++) for(j = 1; j <= ; j++) for(k = 1; k <= i; k++) for(p = 1; p <= k; p++) sum++; retur sum; הערה: הניחו שכל קריאה לפונקציה, log לוקחת (1)Θ. it fuc (it ){ it sum, i, j, jump; ו. sum = 0; jump = 1; for(i = 0; i < log( ) ; i++){ for(j = i log( ) ; j < ( i+ 1) log( ) ; j+=jump) sum += j; jump *= ; retur sum;. Θ(1) הערות: הניחו שכל קריאה לפונקציה,log הניחו ש- מתחלק ב- ( log( לוקחת ללא שארית. it fuc (it ){ it sum, i, j,k; ז. sum = 0; for(i= log( ) ; i<= ; i++) for(j=1; j<= i; j++) for(k=1; k<=*; k+= i*i) sum++; retur sum; - 4 -

6 שאלה 8: ביום סגרירי עם ראות לקוייה, הלכו אב ובנו, בן השלוש, לים. האב לרגע איבד ריכוז, ולא שם עין על הילד. לפתע גילה שבנו אבד. הוא הסתכל שמאלה, ואז ימינה, אך לא ראה את הבן. האב אובד עצות, לא ידע אם להתחיל ללכת לכוון צפון או דרום, וחשב על האלגוריתם הבא (למציאת הבן האובד): i 1.1. כל עוד לא נמצא הבן.1 צעד i צעדים לכוון דרום.. חזור לנקודת המוצא..3 צעד i צעדים לכוון צפון..4 חזור לנקודת המוצא. i i הניחו שמנקודת המוצא הילד נע לאחד הכוונים (צפון או דרום), ומרגע תחילת החיפוש הוא נותר במקומו, עד שאביו מוצא אותו. א) נתחו את יעילות האלגוריתם כפונקציה של, כאשר בה מצא האב את בנו. הוא מספר הצעדים בין נקודת המוצא לנקודה ב) תארו אלגוריתם לפיו ימצא האב את בנו ביעילות של.O() ג) נתחו את יעילות האלגוריתם שנתתם כדי להראות שהיעילות היא אכן.O() שאלה 9: נתון מערך A של איברים. האלגוריתם הבא (נקרא לו M) ממיין אותו: אם < 3 I) נמיין את A ישירות. ונסיים. אחרת: I) נחלק את A ל- 3 תתי מערכים A, A1, ו- A3 בגודל 3/ כל אחד..Bubble Sort בעזרת אלגוריתם נמיין את A1 (II.Heap Sort בעזרת אלגוריתם נמיין את A (III IV )נמיין את A3 ברקורסיה. V) נמזג את A, A1, ו- A3 למערך ממוין בעזרת אלגוריתם הפועל בזמן ליניארי במספר האיברים הכולל. א. תארו נוסחה רקורסיבית המתארת את זמן הריצה של האלגוריתם M. ב. פתרו את הנוסחה הרקורסיבית שהגעתם אליה בעזרת משפט האב Theorem).(Master - 5 -

7 שאלה 10: חשבו חסם הדוק במונחי Θ לזמן הריצה של הפונקציה כאשר היא נקראת עם הפרמטרים = 0,left ו- 1 right = לפי ההנחיות הבאות: כתבו נוסחת נסיגה לזמן הריצה ופתרו אותה על ידי הצבה חוזרת. הסבירו תשובתכם. אין צורך להוכיח את נכונות הפתרון באינדוקציה, אולם יש להראות את השלבים השונים של ההצבה החוזרת. void Sort(it A[], it left, it right) { it p; If ( left < right) { p = (right left + )/3; Sort(A,left, left + p 1); Sort(A, left + p, left + *p 1); MergeSort(A, left + *p, right); Merge3(A, left, left + p, left + *p, right); MergeSort(A,i,j) היא הפונקציה שראינו בכיתה שממיינת את המערך A בין הגבולות i ל- j בעזרת אלגוריתם MergeSort שלמדנו. Merge3(A,i,j,k,m) היא פונקציה הממזגת שלושה חלקים ממוינים הנמצאים בין הגבולות i ל- 1,j j ל-,k 1 ו- k ל-,m ויעילותה ליניארית במספר הנתונים הכולל שהיא ממזגת. (אם אחד החלקים ריק אז הפונקציה ממזגת את שני החלקים הנותרים) כאשר: שאלה 11: האלגוריתם הבא ממיין איברים שונים הנתונים במערך A (תוך שימוש במערך עזר B, בגודל ). אם 1 המערך ממוין. אחרת,.1. מיין ברקורסיה את חצי המערך השמאלי (כלומר את [/ 1]A) מיין בעזרת HeapSort את חצי המערך הימני (כלומר את [.(A[/ עבור / i = 1,,.3.1. מצא בעזרת חיפוש בינארי את מספר האיברים בחצי המערך הימני הקטנים מ-.A[i] נסמן מספר זה ב- j. B[i + j] = A[i] עבור i = /+1,,.4.1. מצא בעזרת חיפוש בינארי את מספר האיברים בחצי המערך השמאלי הקטנים מ- j. נסמן מספר זה ב-.A[i] B[i / + j] = A[i] העתק את מערך B ל- A..1. הערה: באלגוריתם הנ"ל תאי מערך מתחילים באינדקס 1. א) ב) הסבירו בקצרה מהו תפקידם של צעדים.3 ו-.4 באלגוריתם זה. נתחו את יעילות האלגוריתם במקרה הגרוע

8 שאלה 1: נתונה הפונקציה הרקורסיבית הבאה, המקבלת מערך : של מספרים שלמים, ואת גודלו Arr[ ] it fuc (it Arr[], it ){ it i, j, sum=0; if(<=) retur 0; else{ for(i = 0; i < ; i++){ fuc(arr+ i, ); for(j = i ; j < ( i+ 1) ; j++) sum += Arr[j]; retur sum;, לוקח Θ(1). הערה: הניחו שכל חישוב של א. כתבו את נוסחת הנסיגה המתארת את סדר גודל מספר הפעולות שמבצעת הפונקציה הנ"ל. ב. ציירו את עץ הקריאות הרקורסיביות שיתקבל מהרצת הפונקציה הנ"ל. הערה: יש לצייר את העץ כך שתובן צורתו, וכן לפרט נתונים המעידים על מבנה העץ. ג. תנו חסם הדוק לזמן ריצת הפונקציה הנ"ל. יש לתאר את השיקולים (מתוך מבנה העץ שציירתם) מהם הסקתם חסם זה. שאלה 13: נתון פרמטר k. האלגוריתם הבא ממיין מערך A של מספרים (ניתן להניח ש- < k 1 ):, מיין את המערך במיון בועות, וסיים. k אם.1 כל אחד (אם אינו מתחלק במדויק ב- k, k נחלק את A ל- k תת מערכים,A 1,..., A k בגודל. אז תת המערך האחרון יכיל פחות אברים). נמיין ברקורסיה את כל אחד מ- k תתי המערכים. 3. נמזג את A 1 הממויין עם A הממויין; עתה נמזג את תוצאת המיזוג עם A 3 הממוין; עתה נמזג את 4. תוצאת מיזוג זו עם A 4 הממוין, וכך הלאה. באיטרציה האחרונה נמזג את תוצאת המיזוג של k-1 A 1, A,..., A עם A k הממויין. א) כתבו את נוסחת הנסיגה המתארת את סדר גודל מספר הפעולות שמבצע האלגוריתם כפונקציה של ו- k. ב) ציירו את עץ הקריאות הרקורסיביות שיתקבל מהרצת האלגוריתם הערה: יש לצייר את העץ כך שתובן צורתו, וכן לפרט נתונים המעידים על מבנה העץ. ג) תנו חסם הדוק לזמן ריצת האלגוריתם. יש לתאר את השיקולים (מתוך מבנה העץ) מהם הסקתם חסם זה

9 it Fuc(it* arr, it, it i) { it j, k, sum = 0; שאלה 14: if ( < i) for(j=0; j<; j++) sum += arr[j]; else for(j=0; j<i; j++) { sum += Fuc(arr+ j*(/i), /i, i); for(k = j*(/i);k < (j+1)*(/i); k++) sum += arr[k]; retur sum;.i הינו חזקה של, וכי 1 < i< הערה: הניחו ש: א) כתבו את נוסחת הנסיגה המתארת את סדר גודל מספר הפעולות שמבצע האלגוריתם כפונקציה של ושל i. ב) ציירו את עץ הקריאות הרקורסיביות שיתקבל מהרצת האלגוריתם הערה: יש לצייר את העץ כך שתובן צורתו. כמו כן יש לפרט נתונים המעידים על מבנה העץ, כגון: גובה העץ מספר קודקודים ברמה וכד'. ג) תנו חסם הדוק לזמן ריצת האלגוריתם. יש לתאר את השיקולים (מתוך מבנה העץ) מהם הסקתם חסם זה. ד) עבור איזה ערך של i יתקבל שמן הריצה הגרוע ביותר, כפונקציה של? עבור: =,i זמן הריצה הוא: ( ) ) ( T=Θ עבור איזה ערך של i יתקבל שמן הריצה הטוב ביותר, כפונקציה של? עבור: =,i זמן הריצה הוא: ( ) ) ( T=Θ - 8 -

10 שאלה 15: יהיו x,y שני מספרים טבעיים גדולים מאוד, כל אחד כולל ספרות, כאשר הספרות הן מהתחום {9,,0,1. שני המספרים האלה נשמרים בשני מערכים הנקראים x ו- y, כאשר כל מערך באורך, והספרה ה- i של כל מספר נמצאת בתא ה- i של המערך (נניח שתאי המערכים ממוספרים מ- 1 ועד ). כך למשל אם = 3456 x אז הוא ייוצג כך במערך [3,4,5,6] = x. בשאלה זו עליכם לבדוק את יעילותם של שלושה אלגוריתמים שתפקידם לחשב את המכפלה.x y בכל המקרים ציינו את יעילות האלגוריתמים כפונקציה של. א) ב) מה תהיה יעילותו של אלגוריתם שיכפיל את x y באופן דומה לשיטה הרגילה שלומדים בביה"ס לכפל מספרים? הסבירו תשובתכם. נחלק את x ואת y לשני חלקים באורך / כפי שאפשר לראות בציור הבא. הניחו בסעיף זה ובסעיף הבא ש- הוא חזקה כלשהי של ולכן מתחלק ב- (אולם אם במקרה אי-זוגי אז חלק אחד יכיל ספרה אחת יותר). / ספרות / ספרות x a b / ספרות / ספרות y c d כאשר a הוא חציו השמאלי של המערך x ו- b חציו הימני של המערך x, ובדומה c חציו השמאלי של המערך y ואילו d חציו הימני של המערך y. / / שימו לב שאז מתקיימות הזהויות: x = a 10 + b, y = c 10 + d דוגמה: אם = x אז = 134,a.b = 5678 ואכן מתקיים.x = a b בדומה, אם = y אז = 3456,c,d = 0000 ומתקיים.y = c d כעת אפשר לכתוב אלגוריתם רקורסיבי שיחשב את המכפלה x y בעזרת הנוסחה הבאה: / x y = (a c) 10 + (a d + b c) 10 + (b d) כאשר תנאי העצירה הוא = 1 ואז מחשבים את המכפלה ישירות. כתבו נוסחת נסיגה המתארת את יעילות האלגוריתם הרקורסיבי המתבסס על הנוסחה הזאת, ופתרו אותה. הסבירו גם בקצרה כיצד הגעתם אל נוסחת הנסיגה שכתבתם. ג) הפעם שוב נחשב את המכפלה באופן רקורסיבי, אולם הפעם בעזרת הנוסחה הבאה: / x y = (a c) 10 + ((a+ b) (c+ d) a c b d) 10 + (b d) כתבו נוסחת נסיגה המתארת את יעילות האלגוריתם הרקורסיבי היעיל ביותר המיישם את הרעיון בנוסחה זו, הזה ופתרו אותה. הסבירו גם בקצרה כיצד הגעתם אל נוסחת הנסיגה שכתבתם

11 שאלה 16: נתונה הפונקציה הבאה המוצאת ברקורסיה את הנתון המינימאלי מתוך נתונים במערך. it Mi(it* Arr, it size){ it id, SortedId; if (size == 1) retur Arr[0]; else{ id = Radom(size); SortedId = Partitio(Arr, size, id); if (SortedId == 0) retur Arr[0]; else retur Mi(Arr, SortedId-1); הערות: הפונקציה: um),it Radom(it מקבלת כקלט מספר טבעי,um ומחזירה מספר טבעי אקראי בתחום בין 0 לבין.(um-1) פונקציה זו פועלת ב- (1)Θ. א) ב) ג) הפונקציה: id),it Partitio(it* Arr, it size, it מקבלת כקלט כתובת התחלה של מערך,Arr את גודלו,size ומספר טבעי נוסף id שהוא אינדקס חוקי במערך. הפונקציה מבצעת Partitio על המערך Arr סביב הנתון,Arr[id] ומחזירה את האינדקס בו הוא (הנתון שסביבו בוצע ה- (Partitio נמצא בסוף הפעולה. פונקציה זו פועלת עפ"י האלגוריתם ל- Partitio שהוצג בכיתה. מצאו חסם הדוק לזמן הריצה הגרוע ביותר case) (worst של האלגוריתם. מצאו חסם הדוק לזמן הריצה הטוב ביותר case) (best של האלגוריתם. מצאו חסם הדוק לזמן הריצה הממוצע case) (average של האלגוריתם.. T. T best best () = Ω( () = Ο( ) ) שאלה 17: א. בהינתן אלגוריתם אשר מקיים: מה ניתן להסיק על ()?T worst ב. בהינתן אלגוריתם אשר מקיים: מה ניתן להסיק על?T worst ()

12 Algorithm Alg (A, ) { for (i=1 to ) { if ( F1(A,i) == TRUE ) { F(A,i); שאלה 18: נתון אלגוריתם שמקבל כקלט מערך A ואת גודל המערך : כאשר:.FALSE או TRUE ומחזירה i ומספר שלם A היא פונקציה המקבלת כקלט את F1 1) זמן ריצתה הוא c (כאשר c הוא קבוע). i i. ומספר שלם A היא פונקציה המקבלת כקלט את F ) c' זמן ריצתה הוא logi (כאשר c הוא קבוע). תנו חסם עליון וחסם תחתון טובים ככל האפשר על זמן הריצה של האלגוריתם (החסמים אינם חייבים להיות בהכרח הדוקים). נמקו בקצרה את תשובתכם. Algorithm A (it ) { F1(); F(); F3(); שאלה 19: נתון האלגוריתם הבא: האלגוריתם A מקבל כקלט מספר שלם וחיובי, וקורא לשלוש פונקציות,F1.,F F3 בהתאמה, ואת זמן הריצה של כל T1 ( ), T ( ), T3 ( ) נסמן את זמני הריצה של שלש הפונקציות ב-. נתון ש T A () האלגוריתם ב- T 1( ) = Ω( ), T ( ) = Θ( log ), T3 ( ) = O( ) אילו מבין ארבעת החסמים הבאים בהכרח נכונים ואילו אינם בהכרח נכונים? נמקו בקצרה את תשובותיכם. T A T A ( ) = Ω( ) (1) ( ) = Ω( log ) () T A ( ) = Θ( log ) T A ( ) = O( ) (3) (4)

13 שאלה 0: נתון אלגוריתם המקבל שני מערכים המכילים את סדרות המעבר,PreOrder ו- IOrder של עץ בינארי כלשהו ואת גודלם. האלגוריתם משחזר ומחזיר את העץ ממנו התקבלו הסדרות. קלט: ] pre[ מערך המכיל את סדרת ה- PreOrder של עץ בינארי T. T. של עץ בינארי IOrder מערך המכיל את סדרת ה- i[ ] size מספר הצמתים בעץ T (שהוא גם גודל המערכים). פלט: העץ T. האלגוריתם:.1 אם 0) = (size 1.1 החזר את העץ הריק. T.data אחרת: ( pre[0]).1. place ( pre[0] (המקום במערך i בו מופיע. T.left ( pre[1, K, place], i[0, K,( place 1)], place.3 (קרא ברקורסיה עם: T.right 1], size ( pre[ place + 1, K, (קרא ברקורסיה עם:.4 i[ place + 1, K,( size 1)], size place 1 T. החזר את.5 הערות: 1. הסימון: [j, Arr[, i,k מייצג את תת-המערך של Arr מהאינדקס i עד האינדקס j (כולל).. הניחו שפעולת החיפוש בשורה. ממומשת ע"י חיפוש ליניארי. 3. הניחו שהנתונים בעץ שונים זה מזה. pre = [3,1, 4,,6,5,7,8] i = [1,4,3,5,7,6,,8] size = 8 א) מריצים את האלגוריתם עם הקלט: i) ציירו את העץ המתקבל מפלט האלגוריתם: (ii ציירו את עץ הקריאות הרקורסיביות, הנוצר מהרצת האלגוריתם (על הקלט לעיל). בכל צומת בעץ הקריאות ציינו את ערכו של המשתנה size עבור הקריאה אותה הוא מייצג.. Ω ב) מצאו חסם הדוק לזמן הריצה הגרוע ביותר case) (worst של האלגוריתם. הוכיחו גם O וגם.Ω ג) מצאו חסם הדוק לזמן הריצה הטוב ביותר case) (best של האלגוריתם. הוכיחו גם O וגם - 1 -

14 ניתוח אלגוריתמי חיפוש ומיון שאלה 1: נתון מערך A הכולל מספרים שונים וממוין בסדר עולה. האלגוריתם הבא הוא וריאציה על האלגוריתם לחיפוש בינארי: בכל שלב, במקום לבדוק רק את הערך באינדקס, נבדוק את הערך בכל אחד מהאינדקסים.,,3,...,( k 1) k k k k אם באחד מהם הערך שווה לערך שמחפשים נעצור ונחזיר את האינדקס שלו. אחרת נפעיל את האלגוריתם באופן רקורסיבי רק על הקטע המתאים. מה יהיה זמן הריצה של אלגוריתם זה במקרה הגרוע כפונקציה של ו- k? הוכיחו תשובתכם. A נתונים, שאלה : הוכיחו כי אם A הוא אלגוריתם מיון הפועל במודל ההשוואות, אזי במקרה הגרוע של מיון מבצע )) Ω( log( השוואות. שאלה 3: יהי A מערך של מספרים טבעיים. תת המערך המכיל את כל המספרים הזוגיים מ- A (לפי סדר הופעתם ב- A) ממוין, אך תת המערך המכיל את כל המספרים האי-זוגיים מ- A (לפי סדר הופעתם ב- A) לאו דווקא ממוין. למשל A יכול להיות המערך: 10] [1, 3,, 9, 4, 8, 5, (תת המערך של הזוגיים: 10] [, 4, 8, ממוין, ואילו תת המערך של האי-זוגיים: [5,1],3,9 לא ממוין). הוכיחו שעל מנת למיין מערך כנ"ל במודל ההשוואות נדרשות Ω(log()) השוואות במקרה הגרוע. שאלה 4: נתונים m איברים, { 1,, K,m הלקוחים מתוך התחום פרופ' דמבלדור טוען כי ניתן למיין את הנתונים הנ"ל ביעילות האם יש אמת בטענתו?. Θ( m) במקרה הגרוע

15 שאלה 5: (1 אלגוריתם Radix Sort ימיין מספרים מהתחום ב- Θ() זמן ו- Θ() מקום נוסף א) ( Θ( log זמן ו- (1)Θ מקום נוסף ב) ( Θ( log זמן ו- Θ() מקום נוסף ג) ) 3 Θ( זמן ו- ) 3 Θ( מקום נוסף ד) Θ() זמן ו- (1)Θ מקום נוסף ה) ) זמן הריצה במקרה הגרוע של אלגוריתם QS כאשר ה- pivot נבחר באופן רנדומי הוא: ) Θ( log א) Θ() ב) ) Θ( ג) ) Θ( log ד) 3) היעילות הטובה ביותר האפשרית ליישום אלגוריתם Radix Sort הממיין מספרים מהתחום,,K,1, תוך שימוש ב- O() מקום נוסף, היא: א) ).O( ב) )). O ( log(.o( ).O( ) 4) זמן הריצה במקרה הטוב ביותר של אלגוריתם QS כאשר ה- pivot נבחר באופן רנדומי הוא: ).Θ( log א).Θ() ב) ).Θ( ג) ).Θ( log ד) ג) ד)

16 כתיבת אלגוריתמים שאלה 1: כתוב אלגוריתם המקבל כקלט שני מצביעים לשני עצי חיפוש בינאריים T, 1 T, ומחזיר מצביע לעץ חיפוש בינארי T שכולל את כל הנתונים שהופיעו רק באחד משני העצים (או רק ב- T, 1 או רק ב- T). יעילות האלגוריתם צריכה להיות O() כאשר הוא מספר הקדקודים בכל אחד משני העצים. שאלה : נתונים מספרים ממשיים הלקוחים בהתפלגות אחידה מהקטע [0,1]. יש להכריע האם יש ביניהם שני מספרים זהים. תארו אלגוריתם לבעיה שרץ מהר ככל האפשר במקרה הממוצע ומשתמש בזיכרון נוסף בעל סדר גודל מינימאלי. נתחו את סיבוכיות הזמן ואת סיבוכיות הזיכרון הנוסף שהוא דורש. שאלה 3: נתונות שתי ערימות מקסימום, כאשר כל אחת נשמרת במערך כפי שלמדנו בכיתה (נקרא למערכים A ו- B), וכל ערימה מכילה איברים. כתבו אלגוריתם יעיל ככל האפשר במקרה הגרוע שממזג את שתי הערימות לערימת מקסימום יחידה (שתישמר במערך C בגודל ). הערה: מותר להניח שכל האיברים שונים זה מזה. x שאלה 4: נתון עץ חיפוש בינארי T שממומש כרגיל על ידי מצביעים לילדים, כאשר בכל קדקוד נשמר מפתח כלשהו key שהוא מספר שלם. כתבו אלגוריתם שמקבל מצביע לשורש העץ T, ושני ערכים x,y שהם מפתחות של קדקודים כלשהם בעץ, ומחזיר את המפתח שנמצא באב הקדמון המשותף הקרוב ביותר ל- ול- y. מה יעילות האלגוריתם שלכם כפונקציה של מספר הקדקודים בעץ? דוגמה: בעץ הבא, האב הקדמון המשותף הקרוב ביותר ל- 10 ול- 4 הוא 6. ואילו האב הקדמון המשותף הקרוב ביותר ל- 0 ול- 5 הוא

17 .a i < b i כמו-כן ידוע שלכל קטע, המספר b i הוא מספר ) i (a i, b כאשר לכל i מתקיים שאלה 5: נתונים קטעים שיכולים להיות כל מספר a i שלם מהקבוצה,...,1, (אבל זה לא בהכרח נכון עבור המספרים ממשי). כתבו אלגוריתם יעיל ככל האפשר שמודיע האם כל הקטעים זרים זה לזה. מה יעילותו של האלגוריתם שלכם כפונקציה של? שאלה 6: נתון עץ בינארי T שבקדקודים שלו יש מספרים שלמים. העץ ממומש על ידי מצביעים לילדים. כתבו אלגוריתם (T OrderedLayers(Tree שידפיס את תוכן הקדקודים של T, רמה אחרי רמה החל מהשורש, כאשר בכל רמה יודפסו המספרים בסדר עולה מהקטן לגדול. דוגמה: עבור העץ הבא יודפס הפלט הבא משמאל לימין,7.,3,9,5,8,10, לשם כתיבת האלגוריתם השתמשו בשני תורי קדימויות מינימום,Q1 Q המכילים זוגות מהצורה (נתונים, מפתח), כאשר שדה הנתונים יכול להכיל קדקוד בעץ (או מצביע לקדקוד), ואילו המפתחות הם מספרים שלמים. סדר הקדימויות בכל תור נקבע כמובן לפי שדה המפתח. לכל תור קדימויות כזה מוגדרות הפעולות הבסיסיות הבאות: ) MakeEmpty( לרוקן את התור. ) ( IsEmpty מחזירה 1 אם התור ריק, 0 אחרת. data) Isert(it key, TreeNode מכניסה את הזוג data) (key, לתור הקדימויות. ) Mi( מחזירה את הזוג data) (key, שהמפתח שלו מינימלי מבין כל המפתחות בתור. ) DeleteMi( מורידה מהתור את הזוג data) (key, שהמפתח שלו מינימלי מבין כל המפתחות בתור ומחזירה את הזוג כערך. בנוסף אתם יכולים להשתמש רק בזיכרון נוסף בגודל קבוע (אין להשתמש ברקורסיה). שימו לב, האלגוריתם שלכם ישתמש ב- Q1,Q ובפעולות המוגדרות עליהם כבקופסאות שחורות! נתחו גם את יעילותו של האלגוריתם במקרה הגרוע בשני מימושים אפשריים של תורי הקדימויות: 1. תורי הקדימויות ממומשים על ידי ערימות מינימום.. תורי הקדימויות ממומשים ע"י רשימות מקושרות ממוינות (לפי המפתח)

18 שאלה 7: ערימת מינימום תקרא ערימת מינימום ממוינת חלקית, אם בנוסף (להיותה ערימת מינימום) מתקיים: כל הנתונים ברמה ה- i גדולים מכל הנתונים ברמה ה- (1-i), וזאת לכל 1 i. תזכורת: השורש נמצא ברמה ה- 0. כתבו אלגוריתם יעיל ככל האפשר המקבל מערך ] ]A ואת גודלו. האלגוריתם משנה את סדר הנתונים במערך, כך שבסוף האלגוריתם המערך ייצג ערימת מינימום ממוינת חלקית. נתחו את היעילות של האלגוריתם שכתבתם. k 1 הערות: 1. הניחו שכל הנתונים במערך שונים זה מזה. k. הניחו ש- הוא מספר מהצורה = 1, עבור כלשהו. שאלה 8: כתבו אלגוריתם יעיל ככל האפשר, המקבל כקלט מערך ] Arr[ של מספרים, ואת גודלו. הניחו ש- k הוא מהצורה: = 1. i יופיע המספר ה-,( i = 0,1, K,( k 1) האלגוריתם מייצר ומחזיר מערך בגודל k, אשר במקום ה- ) i בגודלו מבין המספרים במערך.Arr כלומר, בתא 0 של מערך הפלט יהיה הנתון ה- 1 בגודלו (המינימאלי). בתא 1 במערך התוצאה יהיה הנתון ה- בגודלו. בתא במערך התוצאה יהיה הנתון ה- 4 בגודלו, וכך הלאה. שאלה 9: כתבו אלגוריתם (d MakeMaxHeap(Arr[],, המקבל מערך של מספרים, את גודלו, וכן מספר נוסף d. האלגוריתם משנה את סדר האיברים במערך כדי שייצג ערימת מקסימום, אשר ב- d הרמות הראשונות בה יופיעו האברים הגדולים ביותר. על האלגוריתם לרץ בזמן.Θ() הערה: ניתן להניח ש- d קטן ממש מגובה העץ. למשל אם 8] [5, 3,, 1, 4, = Arr לאחר הקריאה לאלגוריתם ) MakeMaxHeap(Arr, 6, Arr יכול להראות 3] [8, 4, 5, 1,, =,Arr ולייצג את ערימת המקסימום הבאה: המערך בשתי הרמות הראשונות מופיעים 4,5,8 שהם האיברים הגדולים ביותר במערך

19 struct Tode{ struct ArrayData{ it data; it x; Tode* left; it y; Tode* right; ; ; שאלה 10: נתונים המבנים הבאים: ArrayData* What(Tode* root, it* size){ it um; ArrayData* resarr; כמו כן, נתונה הפונקציה הבאה: um = NumNodes(root); resarr = ew ArrayData[um]; *size = um; Ukow(root, 0, resarr); retur resarr; הפונקציה הנ"ל מקבלת מצביע root לשורש של עץ בינארי, ומייצרת מערך (של אברים מטיפוס,(ArrayData שגודלו מספר הצמתים בעץ. הפונקציה ממלאת את המערך בערכים, ומעדכנת את גודלו דרך המשתנה.size הפונקציה what עושה שימוש בפונקצית העזר,Ukow המוגדרת באופן הבא: it Ukow(TNODE* root, it y, ArrayData* resarr){ it sizel, sizer; if (root = NULL) retur 0; else{ (resarr[0]).x = root->data; (resarr[0]).y = y; sizel = Ukow(root->left, y+1, resarr+1); sizer = Ukow(root->right, y+1, resarr+1+sizel); retur (1 + sizel + sizer); הפונקציה Ukow מקבלת מצביע root לשורש של עץ בינארי, פרמטר קלט נוסף y, ומערך (בגודל מספיק).resArr הפונקציה ממלאת את המערך resarr בערכים (כל אחד מטיפוס.(ArrayData משיקולי יעילות, הפונקציה Ukow מחזירה את מספר הצמתים בעץ עליו מצביע.root

20 א נתון העץ הבא: root What(root) מלאו את המערך המתקבל כתוצאה מהרצת i) x y Idex: T הערכים במערך הפלט של הפונקציה,what כפונקציה של העץ (ii תארו באופן כללי את חוקיות אותו היא מקבלת כקלט. ב היעזרו במחסנית על מנת לכתוב.Ukow גרסה איטרטיבית (ללא רקורסיה), המחקה את ריצת הפונקציה הערות:.1..3 הקפידו לכתוב אלגוריתם ברור וחד משמעי. ניתן לממש את האלגוריתם בשפה עילית,(C++/C) או בפסיאודו-קוד (כפי שהוגדר בכתה). השתמשו במחסנית כבקופסה שחורה. ג כתבו את הפונקציה 1- what המבצעת את הפעולה ההפוכה של הפונקציה what (מתחילת השאלה): Tode* what -1 (ArrayData* Arr, it size); הפונקציה 1- what מקבלת מערך Arr של אברים מטיפוס,ArrayData ואת גודלו.size הפונקציה משחזרת ומחזירה עץ בינארי T, כך שאם נפעיל עליו את הפונקציה what נקבל חזרה את המערך Arr (שימו לב שייתכנו מערכי קלט, אשר עבורם יש יותר מעץ אחד כזה)

21 שאלה 11: תארו אלגוריתם ליניארי המקבל שני עצי,AVL כל אחד עם איברים, ויוצר מהם עץ AVL המכיל את כל האיברים (הניחו שכל האיברים שונים זה מזה). שאלה 1: נתון מערך של מספרים שונים ] A = [a 1, a,..., a המופיעים בסדר ממוין A. ברצוננו לייצר ולהחזיר עץ -3 חוקי, שהעלים בו יהיו נתוני המערך ). a a K a (כלומר, 1 כתבו אלגוריתם יעיל ככל האפשר לפתרון הבעיה. לשם כתיבת האלגוריתם השתמשו בשני תורים. על תור ניתן להפעיל את הפעולות הבאות: ) Make-Empty(,EQueue(data),Is-Empty(,( ),DeQueue(,Frot( ) וכן את הפעולה ) NumElems( שמחזירה את מספר הנתונים בתור ברגע הפעלתה. בנוסף למערך A, לשני התורים ולעץ אותו אתם מייצרים אתם יכולים להשתמש רק בזיכרון נוסף בגודל קבוע (אין להשתמש ברקורסיה ואין לשנות את המערך A). למשל עבור המערך 15] [1, 3, 4, 6, 7, 8, 8, 9, 10, 13, =,A יכול להיווצר העץ: הערה: בכל צומת פנימי בעץ אותו אתם מייצרים יש לעדכן רק את השדות:,Right-Child, Mid-Child, Left-Child המכילים מצביעים לילד השמאלי, לילד האמצעי ולילד הימני בהתאמה (אין צורך לעדכן את השדות.(mi1, mi, mi3 נתחו את יעילותו של האלגוריתם במקרה הגרוע בהנחה שכל פעולת תור לוקחת (1)Θ זמן. נתחו את הזיכרון הנדרש לאלגוריתם

22 שאלה 13: נתון מערך A[] הכולל מספרים שלמים כלשהם, ומספר k 1, כאשר,k הם חזקות של. הניחו שתאי המערך ממוספרים ב-,,1, (ולא ב- 1-,...,1,0 כפי שמקובל ב- C). כמו-כן נתונות הפונקציות הבאות: i) it Select(it A[], it left, it right, it הפונקציה מחזירה את האיבר ה- i בגודלו בתת-מערך של A שבין הגבולות left ו-.right אם אין כזה איבר הפונקציה תחזיר 1. i) void Partitio(it A[], it left, it right, it x, it ההנחה היא ש- x הוא האיבר ה- i בגודלו בתת-מערך של A בין הגבולות left ל-.right הפונקציה מסדרת את האיברים בתת-מערך שנמצא בין הגבולות left ל- right באופן הבא: היא שמה את x במקומו ה- 1 i left + בתת-מערך הזה, את כל המספרים הקטנים (או שווים) ממנו משמאלו, ואת כל הגדולים (או שווים) ממנו מימינו (הפונקציה אינה משנה את יתר המערך). הנחה: היעילות של הפונקציות Select, Parititio היא (1 + Θ(right left במקרה הגרוע. דוגמה: יהיה = 8 ו- 15) (7, 1, 5, 9, 4, 7, 1, =.A אז: Select(A,1,8,6) תחזיר את 1, כי זה האיבר ה- 6 בגודלו ב- A בין הגבולות 1 ל- 8..A = (7, 5, 9, 4, 1, 1, 7, 15) למשל באופן הבא: A תשנה את המערך Partitio(A,1,8,1, 6) ואם שוב נתון 15) (7, 1, 5, 9, 4, 7, 1, = A אז: (,5,3 Select(A, תחזיר את 9 כי הוא האיבר ה- 3 בגודלו בתת-המערך (1,5,9,4). ואם נקרא ל- Partitio(A,,5,9,3) אז המערך A ישונה למשל כך: (7,5,4,9,1,7,1,15) = A. (תת המערך ש- Partitio שינתה מודגש). יש להשתמש בפונקציות Select ו- Partitio כבקופסאות שחורות. כתבו אלגוריתם יעיל ככל האפשר במקרה הגרוע המשתמש בפונקציות, Select, Partitio כדי לסדר את המספרים במערך A באופן הבא: האיבר ה- k בגודלו יהיה בתא,A[k] האיבר ה- k בגודלו יהיה בתא,A[k] וכך הלאה, כאשר באופן כללי האיבר ה- ik בגודלו יהיה בתא,A[ik] לכל i 1. k כמו-כן, כל המספרים שקטנים (או שווים) מהאיבר ה- k בגודלו יהיו בתאים A[1..k 1] (לאו דווקא ממוינים), האיברים שגדולים (או שווים) מהאיבר ה- k וקטנים מהאיבר ה- k בגודלו יהיו בתאים A[k+1..,k 1] וכך הלאה. מה יעילות הפונקציה שכתבתם במקרה הגרוע כפונקציה של ו- k? הוכיחו תשובתכם

23 שאלה 14: נתונה הפונקציה הבאה המיישמת ברקורסיה את אלגוריתם המיון :MergeSort void MergeSort(it* arr, it size){ it mid, i; it* res; if (size == 1) retur; else{ mid = size/; MergeSort(arr, mid); MergeSort(arr+mid, size-mid); res = Merge(arr, mid, arr+mid, size-mid); for(i=0; i<size; i++) arr[i] = res[i]; delete [ ]res; הפונקציה מקבלת כתובת התחלה של מערך המכיל מספרים שלמים, ואת גודלו. הפונקציה משנה את סדר המספרים במערך, כך שבסופה יהיו בסדר ממוין. הפונקציה משתמשת בפונקצית העזר: it* Merge(it* A1, it s1, it* A, it s); המקבלת שני מערכים ממוינים ואת גודלם. הפונקציה ממזגת את שני המערכים הנ"ל, לתוך מערך חדש (שהיא מקצה). היעזרו במחסנית על מנת לכתוב גרסה איטרטיבית (ללא רקורסיה), המחכה את ריצת הפונקציה לעיל. הערות: הקפידו לכתוב אלגוריתם ברור וחד משמעי. ניתן לממש את האלגוריתם בשפה עילית,(C++/C) או בפסאודו-קוד (כפי שהוגדר בכתה). יש להשתמש במחסנית כבקופסה שחורה. השתמשו בפונקציה,Merge עפ"י הממשק המוגדר לה. struct StackData{ הגדרת הטיפוס של הנתונים שיכנסו למחסנית: ; - -

24 שאלה 15: נתונה ערימת מקסימום המחזיקה מספרים ממשיים שונים מטווח לא ידוע, אשר ממומשת ע"י מצביעים (לכל צומת יש גישה לבן השמאלי שלו, לבן הימני שלו, ול-.(data נתעניין בחסימת גודלו של האיבר ה- k בגודלו בערימה (האיבר ה- 1 בגודלו בערימה הוא המקסימלי, כמובן). כתוב אלגוריתם ליישום הפונקציה: bool IsBiggerThaKth( HEAP root, it, it k, it x) הפונקציה מקבלת ערימת מקסימום,root את גודלה, ועוד שני מספרים x, ו- k. על הפונקציה להחזיר true האיבר ה- k בגודלו בערימה קטן או שווה ל- x. וכן:,=6 x=,k=3 9 כך למשל אם הערימה: הפונקציה תחזיר,false היות שהאיבר השלישי בגודלו הוא 6 אך הוא אינו קטן או שווה ל-. דרישות מימוש: 1. על האלגוריתם לרוץ ביעילות O(k) (בלי תלות ב- ).. על הפונקציה להשתמש בתור Q וב- (1)θ זיכרון נוסף בלבד. אין צורך לממש את התור, הוא מספק את הפעולות הבאות בלבד: MakeQ(size) יוצרת תור ריק שיכול להכיל לכל היותר size נתונים. ) IsEmpty( מחזירה true אם"ם התור ריק..(data לתור (אין חשיבות לטיפוס של data מכניסה את EQ(data) ) DeQ( מוציאה את האיבר שבראש התור, ומחזירה אותו. ) Qsize( מחזירה את מספר האברים הממתינים בתור. רמז: אם מגלים k אברים גדולים מ- x ניתן לקבוע בוודאות שהאיבר ה- k בגודלו בערימה לא קטן או שווה ל- x

25 שאלה 16: הניחו שמוגדר לכם טיפוס נתונים המופשט תור Queue עם הפעולות הרגילות: ) Make-Empty( Frot( ),Dequeue( ),Equeue(data), Is-Empty( ), כפי שהוגדרו בכיתה. א) כתבו פונקציה לא רקורסיבית: Merge(Queue Q1, it 1, Queue Q, it ) הפונקציה מקבלת כקלט שני תורים,Q1, Q ואת מספר הנתונים בכל אחד מהם 1 ו- בהתאמה. בכל אחד משני התורים יש סדרה ממוינת של מספרים כך שהמספר הקטן נמצא בראש התור והמספר הגדול בסוף התור. בסיום הפונקציה יכיל התור Q1 סדרה ממוינת המכילה את כל המספרים משני התורים, ואילו התור Q יהיה ריק. הפונקציה שלכם יכולה להשתמש פרט לתורים רק בזיכרון נוסף בגודל קבוע. נתחו את יעילות הפונקציה שלכם. ב) השתמשו בפונקציה שכתבתם בסעיף א', על מנת לכתוב את הפונקציה הלא רקורסיבית הבאה: Sort(Queue Q, it ) הפונקציה מקבלת כקלט תור Q, ואת מספר הנתונים בו. התור מכיל סדרה כלשהי של מספרים. הפונקציה ממיינת את המספרים תוך שימוש בשני תורי עזר ובזיכרון נוסף בגודל קבוע. בסיום הפונקציה יכיל התור Q את הקלט הממוין, כאשר בראש התור נמצא הנתון המינימלי. על הפונקציה לרוץ ביעילות ((. )Θ log( שאלה 17: נתון מערך של מספרים שונים ],A = [a 1, a,..., a ונתון מערך ריק L באורך. עבור כל איבר a i ב- A יש לחשב לתוך L[i] את האינדקס במערך A של האיבר הקרוב ביותר ל- a i משמאלו שקטן ממנו. במילים אחרות L[i] = max {j j < i a j < a i אם אין אינדקס כזה (כלומר כל האיברים i-1 a 1, a,..., a גדולים מ- (a i אז -1 =.L[i] למשל אם A הוא המערך אז המערך L הוא שימו לב שהאינדקסים במערך A מתחילים ב- 1. כתבו אלגוריתם יעיל ככל האפשר לפתרון הבעיה. לשם כתיבת האלגוריתם השתמשו במחסנית S שאבריה הם אינדקסים במערך. על מחסנית ניתן להפעיל את הפעולות הבאות: ) Make-Empty( Is-, ),Empty(,Pop( ),Push(data) וכן ) Top( שמחזירה את הערך שבראש המחסנית בלי להורידו. בנוסף למערכים A ו- L ולמחסנית אתם יכולים להשתמש רק בזיכרון נוסף בגודל קבוע (אין להשתמש ברקורסיה ואין לשנות את המערך A). רמז: אפשר לבצע זאת ב- Θ() זמן ותוך מעבר אחד על המערך A החל מהאיבר השני ) a). למטרת אתחול יש לבצע 1- = [1]L ו- (1).Push - 4 -

26 שאלה 18: כתוב פונקציה יעילה ככל שתוכל המקבלת מערך המכיל מספרים שלמים כלשהם, ועץ בינארי עם צמתים מסודרים בסדר כלשהו (העץ לאו דווקא מלא). בעץ זה הערכים בצמתים לא מעודכנים. על הפונקציה לעדכן את ערכי הצמתים בעץ כך שיתקבל עץ חיפוש בינארי, המכיל את כל אברי המערך. שים לב הפונקציה לא תשנה את מבנה העץ. למשל, אם המערך הוא: [8,3],1, והעץ הוא מהמבנה: 3 על הפונקציה לעדכן לו את הערכים באופן הבא: 8 1 א) הוכיחו שיש סידור חוקי יחיד של הצמתים בעץ. ב) כתבו פסאודו קוד עבור הפונקציה הנדרשת. ג) הוכח שהאלגוריתם שמצאת הוא היעיל ביותר. שאלה 19: כתוב אלגוריתם למציאת מספר הצמתים בעץ בינארי כמעט מלא. it FidNumOfNodes( Tree* T) כאשר T הוא עץ כמעט מלא המיוצג כך שלכל צומת יש גישה רק לבניו (אין לו גישה לאבא). על האלגוריתם לרוץ ביעילות ) () )θ, log כאשר הוא מספר הצמתים ב- T. כך למשל אם T הוא העץ: הפונקציה תחזיר 6. שאלה 0: כתוב פונקציה המקבלת מערך המכיל מספרים ממשיים (תחום המספרים לא ידוע) עם הרבה כפילויות. ידוע שבמערך מספר המספרים השונים הוא ) log(), )Ο על הפונקציה למיין את המערך תוך שימוש ב- ) log(log()) Ο( השוואות. כתוב פסאודו קוד עבור הפונקציה הנדרשת

27 שאלה 1: נתונה ערמת מקסימום בגודל במערך A[1..max] כאשר. <max שימו לב: המערך מתחיל מאינדקס 1 ולא מאינדקס 0. בהינתן אינדקס i במערך, כתבו נוסחאות לחישוב האינדקסים במערך של ילדיו של i שנסמנם Left(i) ו-,Right(i) של ההורה של i שנסמנו Paret(i) ושל סבו של i שנסמנו Gradparet(i) (כלומר (1)Θ. זמן חישוב הנוסחאות צריך להיות.(Paret(i) הוא ההורה של Gradparet(i) Left (i) = Right (i) = Paret (i) = Gradparet (i) = תארו אלגוריתם (x FidIsertIdex(it המקבל מספר x ומחזיר את המקום במערך A אליו היה נכנס x בסופה של פעולת הערמה Isert(x) לו בצענו אותה. האלגוריתם FidIsertIdex צריך לרוץ בזמן ((. Ο log(log( הניחו לשם ביצוע האלגוריתם שחישוב כל חזקה של לוקח (1)Θ זמן. הסבירו גם ( ) מדוע האלגוריתם שלכם רץ בזמן הנדרש. אלגוריתם ל- FidIsertIdex - 6 -

28 ניתוח מבני נתונים שאלה 1: נתון קובץ המכיל תווים, כל תו מופיע בקובץ בדיוק פעם אחת. מה אורך הקובץ המקודד אם הקוד המותאם לתווים נוצר ע"י אלגוריתם הפמן. הערה: הניחו ש- הוא חזקה של. שאלה : מצאו שכיחויות ל- התווים {,,K,1, כך שיתקבל מהם עץ הפמן בגובה 1-. הערה: כזכור, גובה של עץ הוא מספר הקשתות במסלול הארוך ביותר מהשורש לעלה.. f : C שאלה 3: נתונן א"ב, C ונתונה פונקצית שכיחויות א. השלימו את ההגדרה הבאה: הגדרה: משקל של עץ T המייצג קוד פרפיקסי code) (prefix של הא"ב C הוא: B( T ) = ב. השלימו את ההגדרה הבאה: הגדרה: עץ T המייצג קוד פרפיקסי code) (prefix של הא"ב C ייקרא אופטימאלי, אם c c 1 שתי אותיות בא"ב, C ששכיחותם מינימאלית. הוכיחו שקיים עץ אופטימאלי בו c1, ג. יהיו c הם אחים ברמה המקסימאלית. ו- שאלה 4: הוכיחו או הפריכו כל אחת מהטענות הבאות: (1) יהי T העץ של ערימת מינימום. אם x ברמה i ב- T ו- y ברמה 1+ i (כלומר ברמה מתחת ל- x ) אז. x y בהכרח () יהי x קדקוד בעץ חיפוש בינארי שיש לו ילד ימני. אז לקדקוד בו נמצא הערך העוקב ל- x אין ילד שמאלי (העוקב של x הוא המספר הבא מיד אחרי x אם נתבונן על סדרת המספרים בעץ בסדר עולה). (3) לכל שני עלים שערכיהם עוקבים בעץ -3 יש הורה משותף או שההורים שלהם אחים. מחיקה בעץ -3 גורמת לגובה העץ לקטון אם ורק אם לפני המחיקה לכל קדקוד יש רק ילדים. (4) - 7 -

29 שאלה 5: השלימו: בעץ -3 עם עלים יש Θ( ) קודקודים. שאלה 6: נתון האלגוריתם הבא שאמור למחוק צומת מעץ חיפוש בינארי. האלגוריתם מקבל מצביע לעץ חיפוש בינארי,root ומצביע לצומת בתוכו x. א. הוכיחו או הפריכו את הטענה הבאה: האלגוריתם יכול להחליף את פעולת delete של עץ חיפוש בינארי. delete(ode root, ode x) 1. if left(x) = NULL ad right(x) = NULL. if x = root retur NULL 3. if x = left( paret(x) ) 4. left(paret(x) ) NULL 5. else 6. right(paret(x) ) NULL 7. retur root 8. if left(x) = NULL 9. y successor(x) 10. else 11. y predecessor(x) 1. data(x) data(y) 13. delete(root, y) 14. retur root ב. בין אם הוכחתם ובין אם הפרכתם את סעיף א, הוכיחו או הפריכו את הטענה הבאה: יעילות האלגוריתם חסומה ע"י גובה העץ. שאלה 7: נתונה ערימת מקסימום הכוללת איברים שונים זה מזה, ונניח ש- גדול (למשל, > 00 ). נדפיס את איברי הערימה בסדר.preorder אילו מהטענות הבאות נכונות: א) איבר המינימום יכול להופיע במקום הראשון בסדר ה-.preorder המקומות האחרונים בסדר ה-.preorder ב) איבר המינימום תמיד יופיע באחד מ + 1 ג) איבר המינימום יכול להופיע במקום ה + 1 log בסדר ה-.preorder ד) אם הערימה מלאה לגמרי גם ברמה התחתונה, אז איבר המינימום יופיע בדיוק במקום ה- בסדר ה-.preorder הוכיחו תשובתכם במדויק! - 8 -

30 שאלה 8: ערימת מקסימום מדרגה k דומה לערימת מקסימום בינארית רגילה. בדומה לערימה בינארית שהיא עץ שלם מלבד אולי העלים (שגם הם מלאים משמאל עד נקודה כלשהי) וממומשת במערך, גם ערימה מדרגה k היא עץ k -י שלם מלבד אולי העלים (שגם הם מלאים משמאל עד נקודה כלשהי) וממומשת במערך. גם כאן כל קדקוד גדול מכל ילדיו. א) ב) ג) ד) מה הגובה של ערימת מקסימום מדרגה k שמכילה איברים? הסבירו תשובתכם. תארו אלגוריתם יעיל ככל האפשר המממש את הפעולה DeleteMax() בערימת מקסימום מדרגה k. מה יעילות האלגוריתם כפונקציה של ו- k? הסבירו בקצרה כיצד ניתן להכליל את האלגוריתם של Floyd לבניית ערימה מדרגה k בהינתן מערך לא ממוין בגודל. מה יעילות האלגוריתם כפונקציה של ו- k? הציגו את היעילות כסכום של טור והעריכו את הטור. שאלה 9: נניח כי עומד לרשותכם אלגוריתם המסוגל לממש את פעולת FixHeap (כפי שהוגדרה בכיתה) על ערימה בזמן ((.O(lg(lg מה יהיה זמן הריצה של אלגוריתם BuildHeap של פלויד (כפי שנלמד בכיתה), אם במקום להשתמש בפעולת FixHeap הרגילה שלמדנו בכיתה, תשתמשו בפעולת FixHeap החדשה? הוכיחו תשובתכם במדויק. שאלה 10: נתונה ערימת מקסימום המכילה נתונים. נבחר, באופן אקראי, איבר מנתוני הערימה, נקטין את ערכו כך שיהיה הנתון הקטן ביותר, ונבצע.FixHeap מה תוחלת זמן העבודה של פעולת ה- FixHeap שביצענו? הערה: לשם הפשטות הניחו שהרמה האחרונה בערימה מלאה לחלוטין. שאלה 11: האלגוריתם שלהלן ממיין את אברי קבוצה S המכילה איברים:.1 נבחר < k < 1 כלשהו. כל אחת (אם אינו מתחלק k. נחלק את S ל- k קבוצות זרות,S 1,..., S k בגודל במדויק ב- k, אז הקבוצה האחרונה תכיל פחות אברים). 3. נסמן ב- m i את המקסימום בקבוצה S. i ניצור קבוצה נוספת M שתכיל את,..., 1 m.m k 4. כל עוד M אינה ריקה נבצע את הפעולות הבאות: S i תהיה M. מ- M max נוציא את M. max נסמנו ב- M, נמצא את המקסימום בקבוצה a. הקבוצה שאליה שייך M. max b. נוציא את M max מהקבוצה S. i אם S i עדיין לא התרוקנה, נמצא ב- S i מקסימום חדש ונוסיף אותו ל- M. א. נניח שנממש את הקבוצות S, i ואת הקבוצה M ברשימות מקושרות (לא ממויינות). מהי יעילות זמן הריצה של האלגוריתם, כפונקציה של ו-? k ב. מהו ה- k שייתן זמן ריצה אופטימלי (כפונקציה של ) במימוש זה? ג. נניח שנממש את הקבוצות S, i ואת הקבוצה M בערימות. מה יהיה זמן הריצה של האלגוריתם במימוש זה? - 9 -

31 שאלה 1: עלות פעולת Isert(x) במימוש מסוים של ADT של מילון (Dictioary) היא כדלקמן: יהיה מספר האיברים שנמצאים כעת במבנה, ויהיה s מספר האיברים הקטנים מ- x שנמצאים כעת במבנה. אזי עלות )Θ זמן. Isert(x) היא ) s + 1 מה העלות הממוצעת של פעולת Isert(x) למבנה המכיל איברים? הניחו שההסתברות שיש במבנה בדיוק i איברים, i 0, שקטנים מ- x שווה לכל i. שאלה 13: נתונה קבוצה של מספרים שונים ונתון עץ חיפוש בינארי ריק. מבצעים את האלגוריתם הבא: האלגוריתם: בצע פעמים: 1. בחר באופן אקראי מספר בקבוצה.. הורד אותו מהקבוצה. 3. הכנס אותו לעץ החיפוש בעזרת פונקצית Isert של עץ חיפוש (ללא איזון). מצאו את נוסחת הנסיגה לזמן הריצה של האלגוריתם הנ"ל במקרה הממוצע. הסבירו את שיקוליכם. הערה: הניחו שצעדים 1 ו- לוקחים (1)O זמן. שאלה 14: נתונה טבלת ערבול בגודל ופונקצית ערבול אחידה לטבלה סגורה. נניח שיש 5 איברים בטבלה (ואין איברים המסומנים.(DELETED נסמן את ההסתברות שהכנסת המפתח השישי תיקח בדיוק i ניסיונות ב-.pr(i) א. חשבו ישירות (כלומר ללא שימוש בנוסחאות) את.pr(3) ב. תנו נוסחה לתוחלת מספר הניסיונות להכנסת המפתח השישי. שאלה 15: נתונה טבלת ערבול בגודל m, = אשר מכילה כבר / איברים. מטרת השאלה היא לבחון את תוחלת מספר הפעולות להוסיף לטבלה הזאת עוד / איברים. בשני הסעיפים הבאים אתם יכולים להשתמש בנוסחאות שנלמדו בכיתה ליעילות הממוצעת של הפעולות הבסיסיות המוגדרות על טבלת ערבול (כגון חיפוש, הכנסה וכו'). א) ב) מה תהיה תוחלת מספר הפעולות להוסיף / איברים לטבלה הזאת בהנחה שהתנגשויות נפתרות על ידי שרשור, ובהנחה שפונקצית הערבול שבה משתמשים היא אחידה? הוכיחו תשובתכם. מה תהיה תוחלת מספר הפעולות להוסיף / איברים לטבלה הזאת בהנחה שהתנגשויות נפתרות על ידי Ope Addressig טבלה סגורה (בחלק מהכיתות שיטה זו נקראה Re-,(Hashig ובהנחה שפונקצית הערבול שבה משתמשים היא אחידה? הוכיחו תשובתכם

32 שאלה 16: נתון ADT של קבוצות זרות הממומש בעזרת רשימות משורשרות. מוסיפים לו את השיפור של.Uio by Size א. הוכיחו ש- (1-) פעולות uio ייקחו ( O( log זמן במקרה הגרוע. ב. הוכיחו ש- (1-) פעולות uio ייקחו (( )Ω log( זמן במקרה הגרוע. ומבנה הנתונים המופשט "קבוצות זרות" בטיפוס הנתונים שאלה 17: שאלה זו עוסקת הממומשות במערך כפי שנלמד בכיתה עם השיפור של.Uio by Size "רשימות משורשרות" מבצעים סדרה של m פעולות Uio, Fid, MakeSet שמתוכן יש פעולות.MakeSet size( x) k size( יהיה 1 k. נניח שכל פעם שבוצע Uio(x,y) התקיים (y כאשר size(x) ו- size(y) הם גודל הקבוצות של x,y בהתאמה. תנו חסם עליון הדוק ככל האפשר לזמן הריצה הכולל של כל m הפעולות כפונקציה של,m?, k הוכיחו תשובתכם. שאלה 18: מממשים את טיפוס הנתונים המופשט של קבוצות זרות שאיבריהן לקוחים מהתחום {,...,1, ע"י יער של עצים עם שני השיפורים: Uio By Size ו-.Path-compressio מבצעים סדרה של +m פעולות: תחילה, כל פעולות ה- Make-Set האפשריות. אחריהן, m פעולות של Uio ו-,Fid כאשר ראשית מבוצעות ברצף רק פעולות,Uio ואחריהן, בשאר הפעולות, מבוצעות ברצף רק פעולות.Fid הוכיחו שסדרת m פעולות ה- Uio ו- Fid (באופן שתוארה לעיל) תיקח (m. )Θ שאלה 19: 1) במימוש קבוצות זרות בעזרת יער של עצים עם Uio-By-Size ו-,Path Compressio פעולת fid תיקח במקרה הגרוע: (1)Θ א) Θ() ב) ) Θ(log ג),Θ(α()) כאשר α() היא ההפוכה לפונקצית אקרמן. ד) {(,,K log(,1 בעזרת רשימות מקושרת עם ) במימוש קבוצות זרות של המספרים,Uio-By-Size פעולת Uio תיקח במקרה הגרוע: (1)Θ. ה).Θ(log(log())) ו).Θ(log()) ז).Θ(log()) ח) אף אחת מהתשובות אינה נכונה. ט)

33 מציאת מבני נתונים שאלה 1: הצע מבנה נתונים המחזיק קבוצות של מספרים שלמים לאו דווקא זרות, ותומך בפעולות הבאות: MakeSet(x) - יצירת קבוצה בעלת איבר אחד x. יעילות נדרשת (1)θ בממוצע. Uio(A,B) - המקבלת שתי קבוצות A ו- B, ומחזירה את קבוצת האיחוד שלהן. יעילות נדרשת θ( A + B ) בממוצע ( A ו- B הם מספר האיברים ב- A וב- B בהתאמה). Itersect(A,B) - המקבלת שתי קבוצות A ו- B, ומחזירה את קבוצת החיתוך שלהן. יעילות נדרשת θ( A + B ) בממוצע ( A ו- B הם מספר האיברים ב- A וב- B בהתאמה). Query(A,x) המחזירה true אם"ם.A x יעילות נדרשת (1)θ בממוצע. שאלה : נתון ADT לשמירת מספרים טבעיים, התומך בפעולות הבאות: ) MakeEmpty( פעולה זו מאתחלת מבנה ריק. ) IsEmpty( פעולה זו מחזירה true אם"ם המבנה ריק. הוא מספר המספרים במבנה. Isert(x) פעולה זו מכניסה את המספר x למבנה. על פעולה זו להתבצע ביעילות ( Θ log( במקרה הגרוע, כאשר ( ) Delete(x) x הינו נתון הנמצא במבנה. פעולה זו מוציאה את המספר x מהמבנה. על פעולה זו להתבצע ביעילות ( Θ log( במקרה הגרוע, כאשר הוא מספר המספרים במבנה. ( ) IsertFixed(x) פעולה זו מכניסה את המספר x למבנה, ומוציאה מהמבנה את הנתון הוותיק ביותר, כך שאחרי הפעולה מספר הנתונים במבנה הוא כפי שהיה לפני הפעולה. על פעולה זו להתבצע ביעילות ( Θ log( במקרה הגרוע, כאשר הוא מספר המספרים במבנה. ( ) הערה: ניתן להניח שפעולה זו לא תופעל כאשר במבנה אין נתונים כלל. הציעו מבנה נתונים למימוש ה- ADT הנ"ל. ופרטו איך תתבצע כל אחת מהפעולות. הערה: הניחו כי בכל רגע נתון לא יהיו במבנה הנתונים יותר מ- N נתונים

34 שאלה 3: נתון ADT לניהול סדרה סופית של מספרים:.,a1,a,a3,K a ה- ADT תומך בפעולות הבאות: ) MakeNew( פעולה זו מייצרת מבנה ריק. על פעולה זו להתבצע 1 ב-() Θ במקרה הגרוע. ) IsEmpty( פעולה זו מחזירה true אם"ם המבנה ריק. הגרוע. על פעולה זו להתבצע 1 ב-() Θ במקרה data) Isert(i, פעולה זו מכניסה את הנתון data למקום ה- i בסדרה. אם נסמן ב- את אורך הסדרה, ברגע ביצוע הפעולה, אזי: i הוא מספר טבעי בין 1 ל- (1+). א. כל אחד מהנתונים שהיו במקומות:,i,,(1+i),(+i), יזוזו ב. למקומות: (+1) (i+1), (i+), (i+3),, בהתאמה. הנתונים שהיו במקומות: (1-i),,,1 יישארו במקום שהיו. Θ במקרה הגרוע. ( log( על פעולה זו להתבצע ביעילות ג. ( ) ) i Delete( פעולה זו מוחקת מהסדרה את הנתון ה- i. אם נסמן ב- את אורך הסדרה, ברגע ביצוע הפעולה, אזי: א. i הוא מספר טבעי בין 1 ל-. ב. כל אחד מהנתונים שהיו במקומות:,(1+i),,(+i), יזוזו למקומות: (-1) i, (i+1), (i+),, בהתאמה. הנתונים שהיו במקומות: (1-i),,,1 יישארו במקום שהיו. ) Θ( log( במקרה הגרוע. ג. על פעולה זו להתבצע ביעילות ) הערה: אין צורך לממש פעולה זו. ) i Get( פעולה זו מחזירה את הנתון ה- i בסדרה אך אינה מוחקת אותו מהסדרה. על פעולה זו להתבצע ביעילות ( Θ log( במקרה הגרוע, כאשר הוא אורך הסדרה. ( ) MakeNew( ) Isert(1, 1.5) Isert(1,.5) פעולה זו מחזירה //.5 Get(1) Iser(, 3.5) פעולה זו מוחקת מהסדרה את הנתון //.5 Delete(1) פעולה זו מחזירה // 1.5 Get() למשל, רצף הפעולות הבא: הציעו מבנה נתונים למימוש ה- ADT הנ"ל. ופרטו איך תתבצע כל אחת מהפעולות

35 שאלה 4: נתון ADT לניהול Play List (רשימת שירים), כאשר כל שיר מאופיין בזמר המבצע אותו ובמספר טבעי המייצג את דירוג השיר. ה- ADT תומך בפעולות הבאות: ) MakeEmpty( פעולה זו מאתחלת מבנה ריק. על פעולה זו להתבצע 1 ב-() Θ במקרה הגרוע. ) IsEmpty( פעולה זו מחזירה true אם"ם המבנה ריק. הגרוע. על פעולה זו להתבצע 1 ב-() Θ במקרה FilePath) IsertSog(PreformerName, SogRatig, פעולה זו מכניסה למבנה את השיר של הזמר,PreformerName בעל דירוג,SogRatig הנמצא במחשב במסלול.FilePath על פעולה זו להתבצע ביעילות ( Θ log( במקרה הגרוע, כאשר הוא מספר השירים במבנה. ( ) ) PlayNext( פעולה זו גורמת לניגון השיר הבא. הפעולה מחזירה true אם"ם קיים שיר נוסף לנגן. השיר הבא שינוגן יקבע עפ"י הלוגיקה הבאה: אם זו ההפעלה הראשונה של הפעולה,PlayNext ינוגן השיר בעל הדירוג הגבוה ביותר של הזמר שנכנס ראשון למבנה. אם זו אינה ההפעלה הראשונה של הפעולה,PlayNext נסמן ב- P את הזמר של השיר האחרון שנוגן. הפעולה תגרום לניגון השיר בעל הדירוג המקסימאלי של הזמר שנכנס ראשון למבנה אחרי ש- P נכנס (אחרי שנכנס השיר הראשון של P), שעדיין נותרו לו שירים שלא נוגנו. הערה: יש להתייחס אל סדר הזמרים בצורה מעגלית, כלומר אם P הוא הזמר שנכנס אחרון למבנה, אזי השיר הבא יהיה של הזמר הראשון שנכנס למבנה, שעדיין נותרו לו שירים שלא נוגנו. על פעולה זו להתבצע ביעילות במקרה הגרוע, כאשר הוא מספר השירים במבנה. Θ( log( ) ) MakeEmpty( ) IsertSog,"הראל סקעת"),3 "C:\My (" mp3.שלכת\ Music,"הראל סקעת") IsertSog,18 "C:\My כאן\ Music (" mp3.הנני IsertSog,"הראל מויאל"),16 "C:\My על החלון\ Music (" mp3.נר IsertSog,"הראל מויאל"),19 "C:\My (" mp3.משאלה\ Music IsertSog,"שירלי לילו"),1 "C:\My איתה\ Music (" mp3.לך PlayNext( ); PlayNext( ); PlayNext( ); PlayNext( );,"לירון לב") IsertSog,0 "C:\My לך\ Music (" mp3.נבראתי PlayNext( ); PlayNext( ); למשל, רצף הפעולות הבא: יגרום לניגון השירים לפי הסדר הבא (מימין לשמאל): הראל מויאל - משאלה; הראל סקעת שלכת; הראל מויאל נר על החלון; הראל סקעת הנני כאן; שירלי לילו לך איתה; לירון לב נבראתי לך; הציעו מבנה נתונים למימוש ה- ADT הנ"ל. ופרטו איך תתבצע כל אחת מהפעולות. הערה: לצורך המימוש ניתן להניח שקיימת הפונקציה,Play(FilePath) הגורמת לניגון השיר שנמצא במסלול.FilePath

36 שאלה 5: עליכם לתכנן מבנה נתונים עבור קבוצות זרות כשכל קבוצה כוללת מספרים מתוך תחום נתון {,1.,K מבנה-הנתונים צריך לתמוך בפעולות MakeSet(x) Uio(x,y), ו Fid(x) כפי שתוארו בכיתה, וגם בפעולה,Delete(x) המורידה את x מתוך הקבוצה בה הוא נמצא ומתוך מבנה הנתונים בכלל (אי- אפשר יהיה לבצע שוב בהמשך את הפעולה.(MakeSet(x) הפעולה Delete(x) צריכה להתבצע רק אם x אינו נציג הקבוצה (אחרת יש להחזיר הודעה ש- x הוא הנציג של קבוצתו ואין למוחקו). תארו את מבנה הנתונים ותארו בקצרה כל אחת מהפעולות כך שיתקיים:.O( m + log כל סדרה של m פעולות תיקח זמן כולל של ( באם אתם מתארים מבנה נתונים הדומה למבנה שראינו בכיתה אינכם צריכים לתאר אותו במלואו, אלא רק לציין את השינויים במבנה והשינויים בביצוע הפעולות. כמו-כן נתחו את זמן הריצה הכולל של סדרה של m פעולות (שוב אם ההוכחה דומה למה שראינו בכיתה תארו רק את השינויים בהוכחה). שאלה 6: הציעו מבנה נתונים המאפשר לשמור לכל היותר N מספרים ממשיים ומאפשר לתמוך בפעולות הבאות: :Fid(x) מחזירה true אם x נמצא במבנה, false אחרת. :Delete(x) מוחקת את x מהמבנה. :Isert(x) מוסיפה את x למבנה, כאשר אם המבנה מכיל כבר N איברים אז כדי לפנות מקום ל- x יש להוציא מהמבנה את האיבר שמספר פעולות ה- Fid שבוצעו עליו הוא הגדול ביותר. אם יש מספר איברים שבוצעו עליהם אותו מספר מקסימלי של פעולות Fid יש להוציא אחד מהם (לא חשוב את מי). יעילות כל פעולה צריכה להיות ( O(log במקרה הגרוע, כאשר הוא מספר האיברים שנמצאים במבנה בזמן ביצוע הפעולה. תארו את מבנה הנתונים, כתבו אלגוריתם לכל אחת מהפעולות ונתחו את היעילות של כל פעולה במקרה הגרוע. שאלה 7: ה- ADT הבא תומך בפעולות על קבוצות זרות המכילות מספרים כלשהם (לאו דוקא מ- {,...,1,). הניחו שמספר המספרים במבנה אינו עולה על. MakeSet(x) מקבלת מספר x ויוצרת קבוצה חדשה המכילה את המספר x בלבד. המספר x הוא נציג הקבוצה. Fid(x) מקבלת מספר x ומחזירה את הנציג של הקבוצה ש- x שייך אליה. repy) Uio(repx, מקבלת מספרים repx ו- repy שהם נציגים של שתי קבוצות ומאחדת את שתי הקבוצות לקבוצה אחת. נציג הקבוצה החדשה יהיה אחד מאבריה. היעילות הנדרשת של כל אחת משלוש הפעולות (כולל (MakeSet היא ( O(log במקרה הגרוע. א) ב) תארו מבנה נתונים למימוש ה- ADT הנ"ל, כתבו לכל אחת מהפעולות אלגוריתם, ונתחו את היעילות של כל פעולה במקרה הגרוע. הסבירו בקיצור כיצד ניתן להפוך את מבנה הנתונים למבנה סטטי (ופשוט יותר) אם נאפשר לפעולת MakeSet להתבצע ב-.O() שתי הפעולות האחרות צריכות עדיין להתבצע ב- (.O(log יש לכלול בהסבר איך יתבצעו 3 הפעולות במבנה הנתונים החדש

37 שאלה 8: נגדיר ADT התומך בפעולות של ספק סלולרי הנותן שרותים לחברות מסחריות. הניחו שלכל חברה יש לכל היותר k טלפונים סלולרים ברשותה. בהגדרות שלהלן CompayName מייצג שם של חברה (מטיפוס מחרוזת), bill הוא חשבון טלפון אחרון (מטיפוס r,(it הוא מספר הטלפונים בחברה, ו- BillArray הוא מערך של r חשבונות טלפון אחרונים. הפעולות הנדרשות bill) AddNewPhoe (CompayName, מוסיפה על שם החברה טלפון נוסף שחשבונו האחרון הוא.bill על פעולה זו להתבצע ביעילות ((r, O(log( ( + log( כאשר הוא מספר החברות המסחריות המשתתפות במסלול המיוחד, ו- r הוא מספר הטלפונים שברשות החברה. BillArray) NewMothlyBills (CompayName, r, מקבלת ב- CompayName (מטיפוס מחרוזת) שם של חברה, ב- r את מספר הטלפונים בחברה, וב- r המקומות הראשונים של המערך BillArray את החשבונות האחרונים של r הטלפונים שברשות החברה. הפעולה NewMothlyBills מעדכנת את החשבונות החודשיים של החברה לחשבונות חדשים. אם החברה אינה קיימת עדיין יש להוסיף אותה למסלול המיוחד. על פעולה זו להתבצע ביעילות (r, O(log( ( + כאשר הוא מספר החברות המסחריות המשתתפות במסלול המיוחד. ApplyDiscout(CompayName) - מקבלת ב- CompayName (מטיפוס מחרוזת) שם של חברה השייכת למסלול המיוחד, ומשנה את החשבונות האחרונים של החברה באופן הבא: לחשבון הגבוה ביותר מבין חשבונות הטלפונים שברשות החברה תינתן הנחה של 30%, ולחשבון השני בגובהו תינתן הנחה של 0%. על פעולה זו להתבצע ביעילות ((r, O(log( ( + log( כאשר הוא מספר החברות המסחריות המשתתפות במסלול המיוחד, ו- r הוא מספר הטלפונים שברשות החברה. הערה: פעולה זו יכולה להתבצע עבור כל חברה מספר פעמים בכל חודש. תארו מבנה נתונים למימוש ה- ADT הנ"ל, כתבו לכל אחת מהפעולות אלגוריתם, ונתחו את היעילות של כל פעולה במקרה הגרוע

38 שאלה 9: נתון ADT לשמירת מספרים, התומך בפעולות הבאות: ) MakeEmpty( פעולה זו מאתחלת מבנה ריק. ) IsEmpty( פעולה זו מחזירה true אם"ם המבנה ריק. Isert(x) פעולה זו מכניסה את המספר x למבנה. על פעולה זו להתבצע ביעילות Θ( log( ) ) במקרה הגרוע, כאשר הוא מספר המספרים במבנה. Delete(x) x הינו נתון הנמצא במבנה. פעולה זו מוציאה את המספר x מהמבנה. על פעולה זו להתבצע ביעילות ( Θ log( במקרה הגרוע, כאשר הוא מספר המספרים במבנה. ( ) Fid(x) מחזיר true אם"ם x נמצא במבנה. על פעולה זו להתבצע ביעילות (1)Θ בממוצע. OrderedSuccessor(x) x הינו נתון הנמצא במבנה. פעולה זו מחזירה, מבין הנתונים שבמבנה, את הנתון המינימאלי הגדול מ- x (הנתון הבא בגודלו). על פעולה זו להתבצע ביעילות (1)Θ בממוצע. הערה: ניתן להניח ש- x אינו הנתון המקסימאלי במבנה. IsertioSuccessor(x) x הינו נתון הנמצא במבנה. פעולה זו מחזירה, מבין הנתונים שבמבנה, את הנתון שנכנס ראשון אחרי x (הנתון הבא לפי סדר ההכנסה). על פעולה זו להתבצע ביעילות (1)Θ בממוצע. הערה: ניתן להניח ש מבין הנתונים שבמבנה, x אינו הנתון שנכנס אחרון. הציעו מבנה נתונים למימוש ה- ADT הנ"ל. ופרטו איך תתבצע כל אחת מהפעולות. הערה: הניחו כי בכל רגע נתון לא יהיו במבנה הנתונים יותר מ- N נתונים. שאלה 10: נגדיר את ה- ADT הבא לתור עדיפויות עם כפילויות של עדיפויות. הפעולות בהן יש לתמוך: ) data Isert( priority, מכניסה את הנתון data בעדיפות priority לתוך המבנה. על פעולה זו לרוץ ביעילות (( O(log( במקרה הגרוע, כאשר הוא מספר הנתונים במבנה ברגע ביצוע הפעולה. ) DeleteMi( מוציאה מהמבנה את הנתון עם העדיפות הקטנה ביותר. אם יש יותר מנתון אחד מאותה עדיפות מינימלית, הפעולה תוציא מבין כל הנתונים עם העדיפות המינימלית את הנתון שנכנס ראשון למבנה. הפעולה מחזירה את הנתון שיצא מהמבנה. על פעולה זו לרוץ ביעילות (( O(log( במקרה הגרוע, כאשר הוא מספר הנתונים במבנה ברגע ביצוע הפעולה. ) Mi( - מחזירה את הנתון עם העדיפות הקטנה ביותר. אם יש יותר מנתון אחד מאותה עדיפות מינימלית, הפעולה תחזיר מבין כל הנתונים עם העדיפות המינימלית את הנתון שנכנס ראשון למבנה. על פעולה זו לרוץ ביעילות (1)Θ במקרה הגרוע. ( Build(PriArr[,[ DataArr[,[ מייצרת תור עדיפויות משני המערכים בהתאמה, Pr iarr[ i] = Pr iarr[ j] ו- i< (העדיפות של הנתון,DataArr[i] היא,(PriArr[i] כך שאם j אז הנתון ה- i יצא מהבנה לפני הנתון ה- j. על פעולה זו לרוץ ביעילות (, )Θ כאשר הוא גודל שני המערכים. תארו במדויק את מבנה הנתונים בו בחרתם להשתמש, כתבו לכל אחת מהפעולות אלגוריתם, ונתחו את היעילות של כל פעולה

39 שאלה 11: בשאלה זו נתייחס למימוש ע"י יער של עצים עם השיפור של Uio By Size המופשט לייצוג קבוצות זרות שאיבריהן לקוחים מהתחום {,...,1,. עבור טיפוס הנתונים ברצוננו לשנות את המימוש כך שבנוסף לפעולות Uio,MakeSet ו- Fid המבנה יאפשר לבצע את הפעולות הבאות: AvgPath(x) בהינתן x, נציג של קבוצה (שהוא גם שורש העץ), פעולה זו תחשב ותחזיר את ממוצע המרחקים מ- x אל הצמתים בעץ. כלומר, אם נסמן את מספר האיברים בקבוצה של x ב- x ואת אברי הקבוצה 1 של x ב-,Set(x) אז (x) AvgPath צריך להחזיר את d T (y) x y Set(x) כאשר (y) d T הוא העומק של y בעץ T, המייצג את הקבוצה. PritSet(x) - בהינתן x, נציג של קבוצה (שהוא גם שורש העץ), פעולה זו תדפיס את אברי הקבוצה של x. דרישות יעילות: פעולת :MakeSet(x) (1)O זמן. פעולת y) O(1) :Uio(x, זמן. פעולת :Fid(x) O(log( x (( זמן, כאשר x הוא מספר האברים בקבוצה של x. פעולת :AvgPath(x) (1)O זמן. פעולת :PritSet(x) O( x ) זמן, כאשר x הוא מספר האברים בקבוצה של x. שאלה 1: נתון ה- ADT הבא: ) MakeEmpty( פעולה זו מייצרת מבנה ריק. ) IsEmpty( מחזירה true אם"ם המבנה ריק., Ο(log()) למבנה. על פעולה זו לרוץ ביעילות x פעולה זו מכניסה את המספר Isert( x ) כאשר הוא מספר הנתונים במבנה., Ο(log()) מהמבנה. על פעולה זו לרוץ ביעילות x פעולה זו מוציאה את המספר Delete( x ) כאשר הוא מספר הנתונים במבנה ) x MiDifferece( פעולה זו מחזירה את הערך המוחלט של ההפרש בין x לבין הנתון במבנה הקרוב ביותר בערכו ל- x. על פעולה זו לרוץ ביעילות,Ο(log()) כאשר הוא מספר הנתונים במבנה. הערה: שימו לב שאם x נמצא במבנה, אזי ההפרש המבוקש הוא 0. אך אם x אינו נמצא במבנה, ההפרש הנ"ל גדול מ- 0. א. הציעו מבנה נתונים המממש את ה- ADT הנ"ל. ב. נניח שברצוננו להוסיף ל- ADT שתואר בתחילת השאלה גם את הפעולה: ) MiAllDiffereces( פעולה זו מחזירה את הערך המוחלט של ההפרש בין שני המספרים במבנה הקרובים ביותר זה לזה בערכם. על פעולה זו לרוץ ביעילות (1)Ο. הערה: שימו לב שאם ישנם במבנה שני איברים שווים, אזי ההפרש המבוקש הוא 0. אך אם כל האיברים שונים זה מזה, ההפרש הנ"ל גדול מ- 0. הציעו מבנה נתונים התומך בכל הדרישות

40 שאלה 13: הציעו מבנה נתונים שיתמוך בפעולות הרגילות על תור עדיפויות מקסימום (מופיעות להלן). על הפעולות לפעול ביעילות המצוינת..Θ(1) הזמן במקרה הגרוע :MakeEmpty( ).Θ(1) הזמן במקרה הגרוע : IsEmpty( ) :Isert(x) הזמן במקרה הגרוע (1)Θ. שימו לב לזמן הנדרש בפעולה זו..Θ(1) הזמן במקרה הגרוע :Max( ) ) :DeleteMax( הזמן במקרה הגרוע ( O( log כאשר הוא מספר הנתונים העכשווי במבנה. והחשוב ביותר: הזמן ל- m פעולות (מכל הסוגים) שמתוכם k הם Isert הוא במקרה הגרוע Θ(m.+ k log k) על מבנה הנתונים להתבסס על אחד או יותר ממבני הנתונים שלמדנו, אך בהחלט ייתכן שתידרשו לשנות ו/או להוסיף מבנים משלכם. שאלה 14: נגדיר מבנה נתונים חדש שנקרא BEAP ותומך בפעולות Isert, DeleteMi, Mi הרגילות המגדירות תור קדימויות מינימום, אולם מסוגל לתמוך גם בפעולה Fid שמחפשת האם נתון מסוים נמצא במבנה. המבנה נקרא BEAP מכיוון שהוא מעין ואריאציה על הערימה.HEAP הנתונים שיהיו ב- BEAP הם מספרים שלמים, ואפשר להניח שהם כולם שונים זה מזה. ה- BEAP יישמר במטריצה משולשית (נשתמש רק בחציו של מערך דו-מימדי), כך שתתקיים התכונה החשובה הבאה: לאורך כל שורה או עמודה במטריצה, המספרים ממוינים בסדר עולה. כמו-כן, המספרים יתווספו ל- BEAP לאורך האלכסונים של המערך, כפי שאפשר לראות בדוגמה הבאה, וכפי שיוסבר בצורה יותר מדויקת בהמשך. דוגמה: הנה BEAP שמכיל = 11 מספרים. אם נוסיף כעת איבר חדש הוא אמור להתווסף למשבצת בשורה 4 ובעמודה. האיבר שיתווסף אחריו ייכנס למשבצת בשורה 3 ובעמודה 3, וכך הלאה עד שיתמלא האלכסון הזה, ואז נתחיל להוסיף איברים לאלכסון החדש שמתחיל בשורה 6 ובעמודה 1 (כמובן שיש לדאוג לתקן את ה- BEAP לאחר הוספתו של כל איבר חדש, כך שתתקיים התכונה שכל שורה ועמודה ממוינת בסדר עולה). המשבצות המושחרות יישארו ריקות במהלך כל חייו של ה- BEAP כי אנחנו משתמשים רק במערך דו-מימדי משולשי כדי להגדיר את המקום שאליו ייכנס האיבר הבא באופן פורמאלי, נגדיר מהו האלכסון ה- i של המערך, וזאת עבור i max 1, כאשר מדובר במערך מגודל.max max אם כן, האלכסון ה- i כולל את המשבצות (i,1),(1,i).,1 i),(,(,3 i),

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p; מבני נתונים פתרונות לסט שאלות דומה לשאלות בנושאים () זמני ריצה של פונקציות רקורסיביות () מיונים השאלות פתרו את נוסחאות הנסיגה בסעיפים א-ג על ידי הצבה חוזרת T() כאשר = T() = T( ) + log T() = T() כאשר =

Διαβάστε περισσότερα

השאלות..h(k) = k mod m

השאלות..h(k) = k mod m מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 5 השאלות 2. נתונה טבלת ערבול שבה התנגשויות נפתרות בשיטת.Open Addressing הכניסו לטבלה את המפתחות הבאים: 59 88, 17, 28, 15, 4, 31, 22, 10, (מימין לשמאל),

Διαβάστε περισσότερα

áùçîä éòãîì äîâîä ÌÈÏÈ ÂÁ

áùçîä éòãîì äîâîä ÌÈÏÈ ÂÁ åôé-à"ú ìù úéîã àä äììëîä áùçîä éòãîì äîâîä :ÌÈ Â È Ó ÌÈÏÈ ÂÁ הנחיות כלליות: יש להגיש את כל התרגילים בזמן (זמני ההגשה מצוינים בסילבוס הקורס). ציונו של תרגיל שיוגש באיחור יהיה 0, למעט מקרים חריגים כגון

Διαβάστε περισσότερα

חורף תש''ע פתרון בחינה סופית מועד א'

חורף תש''ע פתרון בחינה סופית מועד א' מד''ח 4 - חורף תש''ע פתרון בחינה סופית מועד א' ( u) u u u < < שאלה : נתונה המד''ח הבאה: א) ב) ג) לכל אחד מן התנאים המצורפים בדקו האם קיים פתרון יחיד אינסוף פתרונות או אף פתרון אם קיים פתרון אחד או יותר

Διαβάστε περισσότερα

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin( א. s in(0 c os(0 s in(60 c os(0 s in(0 c os(0 s in(0 c os(0 s in(0 0 s in(70 מתאים לזהות של cos(θsin(φ : s in(θ φ s in(θcos(φ sin ( π cot ( π cos ( 4πtan ( 4π sin ( π cos ( π sin ( π cos ( 4π sin ( 4π

Διαβάστε περισσότερα

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

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים מבוא: קבוצות מיוחדות של מספרים ממשיים קבוצות של מספרים ממשיים צעד ראשון להצטיינות קבוצה היא אוסף של עצמים הנקראים האיברים של הקבוצה אנו נתמקד בקבוצות של מספרים ממשיים בדרך כלל מסמנים את הקבוצה באות גדולה

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים מבני נתונים ויעילות אלגוריתמים (8..05). טענה אודות סדר גודל. log טענה: מתקיים Θ(log) (!) = הוכחה: ברור שמתקיים: 3 4... 4 4 4... 43 פעמים במילים אחרות:! נוציא לוגריתם משני האגפים: log(!) log( ) log(a b

Διαβάστε περισσότερα

השאלות ידי מצביעים לילדים.

השאלות ידי מצביעים לילדים. מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 4 השאלות 1. כתבו פונקציה לא רקורסיבית שמדפיסה ב- Postorder את כל הנתונים המאוכסנים בעץ בינארי T. הפונקציה אינה צריכה להיות תלויה במימוש העץ T. הניחו שנתון

Διαβάστε περισσότερα

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה מיון (Sorting) void BubbleSort(int* A, int n){ for (i = ; i < n-; i++) for (j = n-; j >= i; j--) if ( a[j] > a[j+]) swap(&a[j], &a[j+]); מערך בן מספרים. קלט: מערך ובו המספרים מאוחסנים בסדר עולה (או יורד).

Διαβάστε περισσότερα

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשעד פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. לכל אחת מן הפונקציות הבאות, קבעו אם היא חח"ע ואם היא על (הקבוצה המתאימה) (א) 3} {1, 2, 3} {1, 2, : f כאשר 1 } 1, 3, 3, 3, { 2, = f לא חח"ע: לדוגמה

Διαβάστε περισσότερα

סדרות - תרגילים הכנה לבגרות 5 יח"ל

סדרות - תרגילים הכנה לבגרות 5 יחל סדרות - הכנה לבגרות 5 יח"ל 5 יח"ל סדרות - הכנה לבגרות איברים ראשונים בסדרה) ) S מסמן סכום תרגיל S0 S 5, S6 בסדרה הנדסית נתון: 89 מצא את האיבר הראשון של הסדרה תרגיל גוף ראשון, בשנייה הראשונה לתנועתו עבר

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים חזרה מבנה נתונים אמצעי לאחסון נתונים במחשב. יש הרבה סוגים שונים, וצריך להשתמש במבנה שהכי מתאים לבעיה שלנו מבחינת שימוש בנתונים הוספה, מחיקה

Διαβάστε περισσότερα

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

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ משוואות רקורסיביות הגדרה: רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים למשל: T = Θ 1 if = 1 T + Θ if > 1 יונתן יניב, דוד וייץ 1 דוגמא נסתכל על האלגוריתם הבא למציאת

Διαβάστε περισσότερα

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

2 יחל ) השלמה ל - 5 יחל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת. 1 6 מאי, 2004 מועד הבחינה: 2 יח"ל ) השלמה ל - 5 יח"ל) פרק ראשון (50 נקודות) :1 Ï (מקור: שירלי רוזנברג כהן) נגדיר טיפוס נתונים חדש בשם תלת-מחסנית, כמבנה המכיל 3 מחסניות S3. S2, S1, נגדיר את הפעולות הבאות

Διαβάστε περισσότερα

תרגול פעולות מומצאות 3

תרגול פעולות מומצאות 3 תרגול פעולות מומצאות. ^ = ^ הפעולה החשבונית סמן את הביטוי הגדול ביותר:. ^ ^ ^ π ^ הפעולה החשבונית c) #(,, מחשבת את ממוצע המספרים בסוגריים.. מהי תוצאת הפעולה (.7,.0,.)#....0 הפעולה החשבונית משמשת חנות גדולה

Διαβάστε περισσότερα

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

מבני נתונים מבחן מועד ב' סמסטר חורף תשסו TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE הטכניון - מכון טכנולוגי לישראל הפקולטה למדעי המחשב מרצים: רן אל-יניב, נאדר בשותי מבני נתונים 234218-1 מבחן מועד ב' סמסטר חורף תשס"ו

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים חידה לחימום בסל מקש יש צמר. כדורי 00 שני שחקנים משחקים בתורות: כל שחקן, בתורו, צריך להוציא כמות כלשהי של כדורי צמר מהסל לפחות כדור אחד, אך לא יותר ממחצית מכמות כדורי הצמר שבסל. מי שלא יכול לעשות מהלך (מתי

Διαβάστε περισσότερα

תרגיל 13 משפטי רול ולגראנז הערות

תרגיל 13 משפטי רול ולגראנז הערות Mthemtics, Summer 20 / Exercise 3 Notes תרגיל 3 משפטי רול ולגראנז הערות. האם קיים פתרון למשוואה + x e x = בקרן )?(0, (רמז: ביחרו x,f (x) = e x הניחו שיש פתרון בקרן, השתמשו במשפט רול והגיעו לסתירה!) פתרון

Διαβάστε περισσότερα

גבול ורציפות של פונקציה סקלרית שאלות נוספות

גבול ורציפות של פונקציה סקלרית שאלות נוספות 08 005 שאלה גבול ורציפות של פונקציה סקלרית שאלות נוספות f ( ) f ( ) g( ) f ( ) ו- lim f ( ) ו- ( ) (00) lim ( ) (00) f ( בסביבת הנקודה (00) ) נתון: מצאו ) lim g( ( ) (00) ננסה להיעזר בכלל הסנדביץ לשם כך

Διαβάστε περισσότερα

Logic and Set Theory for Comp. Sci.

Logic and Set Theory for Comp. Sci. 234293 - Logic and Set Theory for Comp. Sci. Spring 2008 Moed A Final [partial] solution Slava Koyfman, 2009. 1 שאלה 1 לא נכון. דוגמא נגדית מפורשת: יהיו } 2,(p 1 p 2 ) (p 2 p 1 ).Σ 2 = {p 2 p 1 },Σ 1 =

Διαβάστε περισσότερα

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

( )( ) ( ) f : B C היא פונקציה חחע ועל מכיוון שהיא מוגדרת עי. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חחע אז ועל פי הגדרת הרצאה 7 יהיו :, : C פונקציות, אז : C חח"ע ו חח"ע,אז א אם על ו על,אז ב אם ( על פי הגדרת ההרכבה )( x ) = ( )( x x, כךש ) x א יהיו = ( x ) x חח"ע נקבל ש מכיוון ש חח"ע נקבל ש מכיוון ש ( b) = c כך ש b ( ) (

Διαβάστε περισσότερα

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur פתרון תרגיל --- 5 מרחבים וקטורים דוגמאות למרחבים וקטורים שונים מושגים בסיסיים: תת מרחב צירוף לינארי x+ y+ z = : R ) בכל סעיף בדקו האם הוא תת מרחב של א } = z = {( x y z) R x+ y+ הוא אוסף הפתרונות של המערכת

Διαβάστε περισσότερα

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

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

Διαβάστε περισσότερα

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( ) פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד a d U c M ( יהי b (R) a b e ל (R M ( (אין צורך להוכיח). מצאו קבוצה פורשת ל. U בדקו ש - U מהווה תת מרחב ש a d U M (R) Sp,,, c a e

Διαβάστε περισσότερα

םינותנ ינבמ 3 ליגרתמ תולאשל המוד תולאש טסל תונורתפ תולאשה

םינותנ ינבמ 3 ליגרתמ תולאשל המוד תולאש טסל תונורתפ תולאשה מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 3 השאלות נתונה רשימה משורשרת L המכילה n מספרים שלמים חיוביים מתחום לא חסום כאשר 1 k n = 2 עבור > 0 k כלשהו. נניח שהמספרים ברשימה מקיימים את התכונה הבאה:

Διαβάστε περισσότερα

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 6 נושא: תחשיב הפסוקים: הפונקציה,val גרירה לוגית, שקילות לוגית 1. כיתבו טבלאות אמת לפסוקים הבאים: (ג) r)).((p q) r) ((p r) (q p q r (p

Διαβάστε περισσότερα

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx דפי נוסחאות I גבולות נאמר כי כך שלכל δ קיים > ε לכל > lim ( ) L המקיים ( ) מתקיים L < ε הגדרת הגבול : < < δ lim ( ) lim ורק ( ) משפט הכריך (סנדוויץ') : תהיינה ( ( ( )g ( )h פונקציות המוגדרות בסביבה נקובה

Διαβάστε περισσότερα

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם תזכורת: פולינום ממעלה או מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה p f ( m i ) = p m1 m5 תרגיל: נתון עבור x] f ( x) Z[ ראשוני שקיימים 5 מספרים שלמים שונים שעבורם p x f ( x ) f ( ) = נניח בשלילה ש הוא

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשעו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים: לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( 2016 2015 )............................................................................................................. חלק ראשון: שאלות שאינן להגשה.1

Διαβάστε περισσότερα

3-9 - a < x < a, a < x < a

3-9 - a < x < a, a < x < a 1 עמוד 59, שאלהמס', 4 סעיףג' תיקוני הקלדה שאלון 806 צריך להיות : ג. מצאאתמקומושלאיברבסדרהזו, שקטןב- 5 מסכוםכלהאיבריםשלפניו. עמוד 147, שאלהמס' 45 ישלמחוקאתהשאלה (מופיעהפעמיים) עמוד 184, שאלהמס', 9 סעיףב',תשובה.

Διαβάστε περισσότερα

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא ערמות פיבונאצ'י Operation Linked List Binary Heap Binomial Heap Fibonacci Heap Relaxed Heap make-heap 1 1 1 1 1 is-empty 1 1 1 1 1 insert 1 log

Διαβάστε περισσότερα

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור הרצאה מס' 1. תורת הקבוצות. מושגי יסוד בתורת הקבוצות.. 1.1 הקבוצה ואיברי הקבוצות. המושג קבוצה הוא מושג בסיסי במתמטיקה. אין מושגים בסיסים יותר, אשר באמצעותם הגדרתו מתאפשרת. הניסיון והאינטואיציה עוזרים להבין

Διαβάστε περισσότερα

ל הזכויות שמורות לדפנה וסטרייך

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

Διαβάστε περισσότερα

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשעד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, 635865 מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר 1 נתון: 1. סדרה חשבונית שיש בה n איברים...2 3. האיבר

Διαβάστε περισσότερα

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד. חידה לחימום ( M ש- N > (כך מספרים טבעיים Mו- N שappleי appleתוappleים בעלי אותה הזוגיות (שappleיהם זוגיים או שappleיהם אי - זוגיים). המספרים הטבעיים מ- Mעד Nמסודרים בשורה, ושappleי שחקappleים משחקים במשחק.

Διαβάστε περισσότερα

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשסו מס' סטודנט: TECHNION ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב מבני נתונים 234218 1 מבחן מועד ב ' סמסטר אביב תשס"ו מרצה: אהוד ריבלין מתרגלים: איתן

Διαβάστε περισσότερα

מבני נתונים מבחן מועד א' סמסטר אביב תשס"ו

מבני נתונים מבחן מועד א' סמסטר אביב תשסו TECHNION ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב מרצה: אהוד ריבלין מבני נתונים 234218 1 מבחן מועד א' סמסטר אביב תשס"ו מתרגלים: איתן

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשעו (2016) לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)............................................................................................................. חלק ראשון: שאלות שאינן להגשה 1. עבור

Διαβάστε περισσότερα

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט. פרק סיבוכיות פרק סיבוכיות המושג יעילות מהו? במדעי המחשב היעילות נמדדת בעזרת מדדי סיבוכיות, החשובים שבהם: של אלגוריתמים יעילותם תוכן הפרק: יעילות מהי (זיכרון וזמן, זמן ריצה T( של אלגוריתם מהו, מהם case,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m Observabiliy, Conrollabiliy תרגול 6 אובזרווביליות אם בכל רגע ניתן לשחזר את ( (ומכאן גם את המצב לאורך זמן, מתוך ידיעת הכניסה והיציאה עד לרגע, וזה עבור כל צמד כניסה יציאה, אז המערכת אובזרוובילית. קונטרולביליות

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 5

מתמטיקה בדידה תרגול מס' 5 מתמטיקה בדידה תרגול מס' 5 נושאי התרגול: פונקציות 1 פונקציות הגדרה 1.1 פונקציה f מ A (התחום) ל B (הטווח) היא קבוצה חלקית של A B המקיימת שלכל a A קיים b B יחיד כך ש. a, b f a A.f (a) = ιb B. a, b f או, בסימון

Διαβάστε περισσότερα

gcd 24,15 = 3 3 =

gcd 24,15 = 3 3 = מחלק משותף מקסימאלי משפט אם gcd a, b = g Z אז קיימים x, y שלמים כך ש.g = xa + yb במלים אחרות, אם ה כך ש.gcd a, b = xa + yb gcd,a b של שני משתנים הוא מספר שלם, אז קיימים שני מקדמים שלמים כאלה gcd 4,15 =

Διαβάστε περισσότερα

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשעב זהויות טריגונומטריות תרגול חזרה זהויות טריגונומטריות si π α) si α π α) α si π π ), Z si α π α) t α cot π α) t α si α cot α α α si α si α + α siα ± β) si α β ± α si β α ± β) α β si α si β si α si α α α α si α si α α α + α si

Διαβάστε περισσότερα

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

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

Διαβάστε περισσότερα

סיכום- בעיות מינימוםמקסימום - שאלון 806

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

Διαβάστε περισσότερα

מבני נתונים (234218) 1

מבני נתונים (234218) 1 מבני נתונים (234218) 1 חומר עזר לבחינה 13 בספטמבר 2016 שימו לב: מותר לצטט טענות המופיעות בדף זה ללא הוכחה. כל טענה אחרת, שאינה מופיעה באופן מפורש, יש לנמק באופן מלא. נימוקים מהצורה "בדומה לטענה שבחומר

Διαβάστε περισσότερα

{ : Halts on every input}

{ : Halts on every input} אוטומטים - תרגול 13: רדוקציות, משפט רייס וחזרה למבחן E תכונה תכונה הינה אוסף השפות מעל.(property המקיימות תנאים מסוימים (תכונה במובן של Σ תכונה לא טריביאלית: תכונה היא תכונה לא טריוויאלית אם היא מקיימת:.

Διαβάστε περισσότερα

תרגול מס' 6 פתרון מערכת משוואות ליניארית

תרגול מס' 6 פתרון מערכת משוואות ליניארית אנליזה נומרית 0211 סתיו - תרגול מס' 6 פתרון מערכת משוואות ליניארית נרצה לפתור את מערכת המשוואות יהי פתרון מקורב של נגדיר את השארית: ואת השגיאה: שאלה 1: נתונה מערכת המשוואות הבאה: הערך את השגיאה היחסית

Διαβάστε περισσότερα

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: של שאלות מבחינות פתרונות.1 שאלהזוהופיעהבמבחןמועדג 01 דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: הגדרות: עבור צומת בעץ בינארי T נסמן ב- T את תת העץ של T ששורשו. (תת העץ הזה כולל את ). נגדיר את תת העץ

Διαβάστε περισσότερα

x a x n D f (iii) x n a ,Cauchy

x a x n D f (iii) x n a ,Cauchy גבולות ורציפות גבול של פונקציה בנקודה הגדרה: קבוצה אשר מכילה קטע פתוח שמכיל את a תקרא סביבה של a. קבוצה אשר מכילה קטע פתוח שמכיל את a אך לא מכילה את a עצמו תקרא סביבה מנוקבת של a. יהו a R ו f פונקציה מוגדרת

Διαβάστε περισσότερα

אלגברה ליניארית (1) - תרגיל 6

אלגברה ליניארית (1) - תרגיל 6 אלגברה ליניארית (1) - תרגיל 6 התרגיל להגשה עד יום חמישי (12.12.14) בשעה 16:00 בתא המתאים בבניין מתמטיקה. נא לא לשכוח פתקית סימון. 1. עבור כל אחד מתת המרחבים הבאים, מצאו בסיס ואת המימד: (א) 3)} (0, 6, 3,,

Διαβάστε περισσότερα

שאלה 1 V AB פתרון AB 30 R3 20 R

שאלה 1 V AB פתרון AB 30 R3 20 R תרגילים בתורת החשמל כתה יג שאלה א. חשב את המתח AB לפי משפט מילמן. חשב את הזרם בכל נגד לפי המתח שקיבלת בסעיף א. A 60 0 8 0 0.A B 8 60 0 0. AB 5. v 60 AB 0 0 ( 5.) 0.55A 60 א. פתרון 0 AB 0 ( 5.) 0 0.776A

Διαβάστε περισσότερα

אסימפטוטיים תוכנית הקורס עצי AVL עצי 2-3 עצי דרגות סיבוכיות משוערכת מיון מיון שימושים: גרפים איסוף אשפה

אסימפטוטיים תוכנית הקורס עצי AVL עצי 2-3 עצי דרגות סיבוכיות משוערכת מיון מיון שימושים: גרפים איסוף אשפה תוכנית הקורס cs, Technion 2..3.4 מבני נתונים בסיסיים וסימונים אסימפטוטיים מערכים ורשימות מקושרות עצים ועצי חיפוש עצי AVL עצי 2-3 עצי דרגות.5 רשימות דילוגים סיבוכיות משוערכת.6.7.8.9.0..3.4 מטרת הקורס: מבני

Διαβάστε περισσότερα

תורת הגרפים - סימונים

תורת הגרפים - סימונים תורת הגרפים - סימונים.n = V,m = E בהינתן גרף,G = V,E נסמן: בתוך סימוני ה O,o,Ω,ω,Θ נרשה לעצמנו אף להיפטר מהערך המוחלט.. E V,O V + E כלומר, O V + E נכתוב במקום אם כי בכל מקרה אחר נכתוב או קשת של גרף לא

Διαβάστε περισσότερα

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( ) עצים מאוזנים Lecture 5 of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds תזכורת: משפחת עצים נקראת מאוזנת אם ( h. = (log עצי -3 ועצי דרגות עצי AVL הם עצים מאוזנים. עצי 3- מהווים דוגמא

Διαβάστε περισσότερα

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m.

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m. פתרון למבחן במבני נתונים, מועד א', קיץ 2005 חלק א' שאלה 1 א. רכיב הקשירות החזק של קודקוד x בגרף מכוון הינו אוסף כל הקודקודים y שמקימים שיש מסלול מ- x ל- y וכן מסלול מy ל- x. טעויות נפוצות שכחו לכתוב שזה

Διαβάστε περισσότερα

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1 1 טורים כלליים 1. 1 התכנסות בהחלט מתכנס. מתכנס בהחלט אם n a הגדרה.1 אומרים שהטור a n משפט 1. טור מתכנס בהחלט הוא מתכנס. הוכחה. נוכיח עם קריטריון קושי. יהי אפסילון גדול מ- 0, אז אנחנו יודעים ש- n N n>m>n

Διαβάστε περισσότερα

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד סמסטר: א' מועד: א' תאריך: יום ה' 0100004 שעה: 04:00 משך הבחינה: שלוש שעות חומר עזר: אין בבחינה שני פרקים בפרק הראשון 8 שאלות אמריקאיות ולכל אחת מהן מוצעות

Διαβάστε περισσότερα

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

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה. בחינת סיווג במתמטיקה.9.017 פתרונות.1 סדרת מספרים ממשיים } n {a נקראת מונוטונית עולה אם לכל n 1 מתקיים n+1.a n a האם הסדרה {n a} n = n היא מונוטונית עולה? הוכיחו תשובתכם. הסדרה } n a} היא אכן מונוטונית

Διαβάστε περισσότερα

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק יום א 14 : 00 15 : 00 בניין 605 חדר 103 http://u.cs.biu.ac.il/ brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק 29/11/2017 1 הגדרת קבוצת הנוסחאות הבנויות היטב באינדוקציה הגדרה : קבוצת הנוסחאות הבנויות

Διαβάστε περισσότερα

מבני נתונים עצים שיעור 7

מבני נתונים עצים שיעור 7 בס ד מבני נתונים עצים שיעור 7 שי גולן כ ח בניסן, תשע ו 6 במאי 2016 תקציר בתרגול זה נתחיל לדון בעצים. נגדיר עצים כלליים ועצים בינאריים, ונציג את ההגדרות הבסיסיות בתחום. נתרגל הוכחת תכונות של עצים באמצעות

Διαβάστε περισσότερα

מבני נתונים מבחן מועד א' סמסטר חורף תשס"ו

מבני נתונים מבחן מועד א' סמסטר חורף תשסו TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE הטכניון - מכון טכנולוגי לישראל הפקולטה למדעי המחשב מרצים: רן אל-יניב, נאדר בשותי מבני נתונים 234218-1 מבחן מועד א' סמסטר חורף תשס"ו

Διαβάστε περισσότερα

תורת הקבוצות תרגיל בית 2 פתרונות

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

Διαβάστε περισσότερα

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת תרגול 3 ניתוח לשיעורין תאריך עדכון אחרון: 27 בפברואר 2011. ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת חסמי זמן ריצה נמוכים יותר מאשר חסמים המתקבלים כאשר

Διαβάστε περισσότερα

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין, 009 מבני נתונים סיכום למבחן, יולי sashag@cs מאת : סשה גולדשטיין, 7:50,3.7.09 עדכון אחרון : בשעה הגבלת אחריות הסיכום להלן הוא האינטרפרטציה שלי של החומר, שממש לא חייבת להיות נכונה או מייצגת את זו של הסגל.

Διαβάστε περισσότερα

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ,

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ, עץץץץ AVL הגדרה: עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1,, או 1-. h(t left(x) ) - h(t right(x) ) 1 במילים אחרות: לכל צומת x בעץ, בעץ AVL שומרים עבור כל צומת

Διαβάστε περισσότερα

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS כלליים שיטות חיפוש בבגרפים שיטה 1: חיפוש לרוחב S (readth irst Search) זמן: ) Θ( V + הרעיון: שימוש בתור.O שיטה 2: חיפוש לעומק S (epth irst Search) Θ( V + ) יהי =(V,) גרף כלשהו, V הוא צומת התחלת החיפוש.

Διαβάστε περισσότερα

רשימת משפטים והגדרות

רשימת משפטים והגדרות רשימת משפטים והגדרות חשבון אינפיניטיסימאלי ב' מרצה : למברג דן 1 פונקציה קדומה ואינטגרל לא מסויים הגדרה 1.1. (פונקציה קדומה) יהי f :,] [b R פונקציה. פונקציה F נקראת פונקציה קדומה של f אם.[, b] גזירה ב F

Διαβάστε περισσότερα

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. א{ www.sikumuna.co.il מהי קבוצה? קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. קבוצה היא מושג יסודי במתמטיקה.התיאור האינטואיטיבי של קבוצה הוא אוסף של עצמים כלשהם. העצמים הנמצאים בקבוצה הם איברי הקבוצה.

Διαβάστε περισσότερα

תרגיל 7 פונקציות טריגונומטריות הערות

תרגיל 7 פונקציות טריגונומטריות הערות תרגיל 7 פונקציות טריגונומטריות הערות. פתרו את המשוואות הבאות. לא מספיק למצוא פתרון אחד יש למצוא את כולם! sin ( π (א) = x sin (ב) = x cos (ג) = x tan (ד) = x) (ה) = tan x (ו) = 0 x sin (x) + sin (ז) 3 =

Διαβάστε περισσότερα

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t. תכנון אלגוריתמים 2016 עבודה 1 פתרון שאלה 1 נזכר כי בגרף (E G, =,V) עבור שני קודקודים d(u, (v,u, v הוא אורך מסלול קצר ביותר מ u ל v. אם אין מסלול מ u ל.d(u, v) =,v נתונות שתי בעיות. בעיה א' מופע: גרף מכוון

Διαβάστε περισσότερα

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז פתרון תרגיל בית 6 מבוא לתורת החבורות 88-211 סמסטר א תשע ז הוראות בהגשת הפתרון יש לרשום שם מלא, מספר ת ז ומספר קבוצת תרגול. תאריך הגשת התרגיל הוא בתרגול בשבוע המתחיל בתאריך ג טבת ה תשע ז, 1.1.2017. שאלות

Διαβάστε περισσότερα

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה אלגוריתמים בתורת הגרפים פתרון תרגיל מס' 2 לשאלות והערות נא לפנות לאילן גרונאו (shrilan@cs.technion.ac.il) א) ב) ג) גרף דו-צדדי (bipartite) הינו גרף (E )G V, אשר קיימת חלוקה של צמתיו לשתי קבוצות U,W e =

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 12

מתמטיקה בדידה תרגול מס' 12 מתמטיקה בדידה תרגול מס' 2 נושאי התרגול: נוסחאות נסיגה נוסחאות נסיגה באמצעות פונקציות יוצרות נוסחאות נסיגה באמצעות פולינום אופייני נוסחאות נסיגה לעתים מפורש לבעיה קומבינטורית אינו ידוע, אך יחסית קל להגיע

Διαβάστε περισσότερα

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות 25 בדצמבר 2016 תזכורת: תהי ) n f ( 1, 2,..., פונקציה המוגדרת בסביבה של f. 0 גזירה חלקית לפי משתנה ) ( = 0, אם קיים הגבול : 1 0, 2 0,..., בנקודה n 0 i f(,..,n,).lim

Διαβάστε περισσότερα

פתרון תרגיל 4 יסודות מבני נתונים סמסטר א' תשע"ה שאלה 1:

פתרון תרגיל 4 יסודות מבני נתונים סמסטר א' תשעה שאלה 1: פתרון תרגיל 4 שאלה 1: הציעו דרך לממש תור )FIFO( באמצעות ערימה, תשובתכם צריכה לכלול פסאודו-קוד, המתאר את הפעולות הבאות: isempty(),enqueue(x), dequeue(), בנוסף נתחו זמן ריצה במקרה הגרוע ביותר עבור כ"א מהפעולות

Διαβάστε περισσότερα

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

אוטומט סופי דטרמיניסטי מוגדר עי החמישייה: 2 תרגול אוטומט סופי דטרמיניסטי אוטומטים ושפות פורמליות בר אילן תשעז 2017 עקיבא קליינרמן הגדרה אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה: (,, 0,, ) כאשר: א= "ב שפת הקלט = קבוצה סופית לא ריקה של מצבים מצב

Διαβάστε περισσότερα

i שאלות 8,9 בתרגיל 2 ( A, F) אלגברת יצירה Α היא זוג כאשר i F = { f קבוצה של פונקציות {I קבוצה לא ריקה ו A A n i n i מקומית מ ל. A נרשה גם פונקציות 0 f i היא פונקציה n i טבעי כך ש כך שלכל i קיים B נוצר

Διαβάστε περισσότερα

אלגוריתמים 1, סמסטר אביב 2017

אלגוריתמים 1, סמסטר אביב 2017 BFS, DFS, Topological Sort תרגיל בית 1 מוסכמות והנחות להלן רשימת הנחות ומוסכמות אשר תקפות לכל השאלות, אלא אם כן נכתב אחרת במפורש בגוף השאלה. עליכם להוכיח נכונות ולנתח סיבוכיות עבור כל אלגוריתם מוצע. במידה

Διαβάστε περισσότερα

אלגברה מודרנית פתרון שיעורי בית 6

אלגברה מודרנית פתרון שיעורי בית 6 אלגברה מודרנית פתרון שיעורי בית 6 15 בינואר 016 1. יהי F שדה ויהיו q(x) p(x), שני פולינומים מעל F. מצאו פולינומים R(x) S(x), כך שמתקיים R(x),p(x) = S(x)q(x) + כאשר deg(q),deg(r) < עבור המקרים הבאים: (תזכורת:

Διαβάστε περισσότερα

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם. 7.8.2017 מבחן מועד ב' תאריך הבחינה: שמות המרצים: מר בועז ארד פרופ' עמוס ביימל מר יהונתן כהן דר' עדן כלמטץ' גב' מיכל שמש אנא קיראו היטב את ההוראות שלהלן: שם הקורס: תכנון אלגוריתמים מספר הקורס: 202-1-2041

Διαβάστε περισσότερα

הגדרה: מצבים k -בני-הפרדה

הגדרה: מצבים k -בני-הפרדה פרק 12: שקילות מצבים וצמצום מכונות לעי תים קרובות, תכנון המכונה מתוך סיפור המעשה מביא להגדרת מצבים יתי רים states) :(redundant הפונקציה שהם ממלאים ניתנת להשגה באמצעו ת מצבים א חרים. כיוון שמספר רכיבי הזיכרון

Διαβάστε περισσότερα

Hash Tables (המשך) ערבול (Hashing)

Hash Tables (המשך) ערבול (Hashing) מילון עם מפתחות שלמים Lecture of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds טבלאות ערבול הפעולות הבסיסיות של מילון הן כזכור חיפוש, הכנסה, והוצאה. אם המפתחות מספרים שלמים בתחום

Διαβάστε περισσότερα

אינפי - 1 תרגול בינואר 2012

אינפי - 1 תרגול בינואר 2012 אינפי - תרגול 4 3 בינואר 0 רציפות במידה שווה הגדרה. נאמר שפונקציה f : D R היא רציפה במידה שווה אם לכל > 0 ε קיים. f(x) f(y) < ε אז x y < δ אם,x, y D כך שלכל δ > 0 נביט במקרה בו D הוא קטע (חסום או לא חסום,

Διαβάστε περισσότερα

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ! מיון ערימה (Heapsort) מבני נתונים חלק I מיון מבני נתונים ד"ר ערן לונדון. הגדרת ערימה ערימה (בינארית) הינה מערך אשר ניתן להציגו כמו עץ בינארי מלא או כמעט מלא כאשר כל קודקוד בעץ מתאים לתא במערך. העץ הינו

Διαβάστε περισσότερα

חשבון אינפיניטסימלי 1

חשבון אינפיניטסימלי 1 חשבון אינפיניטסימלי 1 יובל קפלן סיכום הרצאות פרופ צליל סלע בקורס "חשבון אינפיניטסימלי 1" (80131) באוניברסיטה העברית, 7 2006. תוכן מחברת זו הוקלד ונערך על-ידי יובל קפלן. אין המרצה אחראי לכל טעות שנפלה בו.

Διαβάστε περισσότερα

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

s קמ קמש מ - A A מ - מ - 5 p vp v= את זמני הליכת הולכי הרגל עד הפגישות שלהם עם רוכב האופניים (שעות). בגרות ע מאי 0 מועד קיץ מבוטל שאלון 5006 מהירות - v קמ"ש t, א. () נסמן ב- p נכניס את הנתונים לטבלה מתאימה: רוכב אופניים עד הפגישה זמן -

Διαβάστε περισσότερα

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME הנדסת המישור - תרגילים הכנה לבגרות תרגילים הנדסת המישור - תרגילים הכנה לבגרות באמצעות Q תרגיל 1 מעגל העובר דרך הקודקודים ו- של המקבילית ו- חותך את האלכסונים שלה בנקודות (ראה ציור) מונחות על,,, הוכח כי

Διαβάστε περισσότερα

. {e M: x e} מתקיים = 1 x X Y

. {e M: x e} מתקיים = 1 x X Y שימושי זרימה פרק 7.5-13 ב- Kleinberg/Tardos שידוך בגרף דו-צדדי עיבוד תמונות 1 בעיית השידוך באתר שידוכים רשומים m נשים ו- n גברים. תוכנת האתר מאתרת זוגות מתאימים. בהינתן האוסף של ההתאמות האפשריות, יש לשדך

Διαβάστε περισσότερα

Nir Adar

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

Διαβάστε περισσότερα

םינותנ ינבמ (הנכות ידימלתל)

םינותנ ינבמ (הנכות ידימלתל) מבני נתונים (לתלמידי תוכנה) 0368.2158 מועד ב', גירסה 1 2 מתוך 2 שיטת האב Method Master n Tn ( ) = at( ) + fn ( ) b logba logba ε Θ ( n ) if : ε > 0, f( n) = O( n ) logba logba Tn ( ) = Θ ( n lg n) if:

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #11

מבני נתונים ואלגוריתמים תרגול #11 מבני נתונים ואלגוריתמים תרגול # התאמת מחרוזות סימונים והגדרות: P[,,m] כך Σ * טקסט T )מערך של תווים( באורך T[,,n] n ותבנית P באורך m ש.m n התווים של P ו T נלקחים מאלפבית סופי Σ. לדוגמא: {a,b,,z},{,}=σ.

Διαβάστε περισσότερα

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל תכנון אלגוריתמים, אביב, תרגול מס' תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (6..(CLR ראשית נראה דוגמא:. A, A, A, A נסמן את גודל המטריצות בסדרה ע"י סדרת גדלים כאשר, p 5 5 p היא

Διαβάστε περισσότερα

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים ( תכנון ניסויים כאשר קיימת אישביעות רצון מהמצב הקיים (למשל כשלים חוזרים בבקרת תהליכים סטטיסטית) נחפש דרכים לשיפור/ייעול המערכת. ניתן לבצע ניסויים על גורם בודד, שני גורמים או יותר. ניסויים עם גורם בודד: נבצע

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37 תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי................................................ 2 2 מיון בועות. Bubble Sort............................................ 2 3 מיון מיזוג. Merge Sort............................................

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר

לוגיקה ותורת הקבוצות מבחן סופי אביב תשעב (2012) דפי עזר לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר תורת הקבוצות: סימונים.N + = N \ {0} קבוצת המספרים הטבעיים; N Z קבוצת המספרים השלמים. Q קבוצת המספרים הרציונליים. R קבוצת המספרים הממשיים. הרכבת

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 13

מתמטיקה בדידה תרגול מס' 13 מתמטיקה בדידה תרגול מס' 13 נושאי התרגול: תורת הגרפים. 1 מושגים בסיסיים נדון בגרפים מכוונים. הגדרה 1.1 גרף מכוון הוא זוג סדור E G =,V כך ש V ו E. V הגרף נקרא פשוט אם E יחס אי רפלקסיבי. כלומר, גם ללא לולאות.

Διαβάστε περισσότερα

פרק 13 רקורסיה רקורסיה רקורסיה רקורסיות פשוטות: חישוב עצרת. תמונת המחסנית ב-() factorial רקורסיות פשוטות: פיבונאצ'י

פרק 13 רקורסיה רקורסיה רקורסיה רקורסיות פשוטות: חישוב עצרת. תמונת המחסנית ב-() factorial רקורסיות פשוטות: פיבונאצ'י פרק 3 רקורסיה רקורסיה נכתב ע"י רן רובינשטיין עודכן ע"י איתי שרון רקורסיה הינה שיטה לתכנון אלגוריתמים, שבה הפתרון לקלט כלשהו מתקבל על ידי פתרון אותה הבעיה בדיוק על קלט פשוט יותר, והרחבת פתרון זה לאחר מכן

Διαβάστε περισσότερα