66
םםםם םםםםםם םםםםםםם םםםםםםםםםםאאא- אאאאא אאאא אאא אאאא אאאאאא[email protected] 29.10.14 אאאאאאא אאאאאאאאאאאא( אאאא אאאאאMerge Sort )

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

Embed Size (px)

DESCRIPTION

מכללת אורט כפר-סבא. מבני נתונים ויעילות אלגוריתמים. צירופים קומבינטוריים מיון מיזוג ( Merge Sort ). 29.10.14. אורי וולטמן. [email protected]. חידה לחימום. נתונה שורה של N משבצות, אשר חלקן צבועות בשחור וחלקן צבועות בלבן. - PowerPoint PPT Presentation

Citation preview

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

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

מכללת אורט כפר-סבא

אורי וולטמן

uriweltmanngmailcom

291014

צירופים קומבינטוריים

(Merge Sortמיון מיזוג )

נתונה שורה שלN משבצות אשר חלקן צבועות בשחור וחלקן צבועות בלבן

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

של כל אחת מהן )צבע לבן הופך לשחור וצבע שחור הופך ללבן(

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

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

חידה לחימום

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

שהמשבצת המרכזית בשורה העליונה והמשבצת המרכזית בשורה התחתונה צבועות בשחור

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

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

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

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

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

כתבו תכנית מחשב בשפתC המקבלת כקלט את Nמחליטה האם להיות השחקן הפותח או השחקן השני ומשחקת מול

המשתמש כך שהיא תנצח תמיד

תזכורת - עצרת( פונקציה מתמטית מוכרת היא פונקצית העצרתfactorial )

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

n = 12 3 4 hellip nלדוגמא

5 = 12 3 4 5 = 120

7 = 12 3 4 5 6 7 = 5040 0 = 1מקובל להגדיר לפונקצית העצרת שימושים רבים במתמטיקה בעיקר

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

תזכורת - עצרת ניתן לכתוב פונקציה איטרטיבית )המשתמשת בלולאה( המקבלת

n ומחזירה את nמספר שלם אי-שלילי

ניתן לנצל את המבנה הרקורסיבי של הפונקציהn = n)n-1( ולכתוב פונקציה רקורסיבית הפותרת את אותה הבעיה

int factorial (int n)

int i product = 1

for (i=1 ilt=n i++)

product = i

return product

int factorial (int n)

if (n == 0)

return 1

else

return factorial(n-1)n

צירופים נתונה קבוצה שלn איברים לתת-קבוצה בעלת k איברים של קבוצה זו

n איברים מתוך k( של combination )צירוףנקרא נסמן את מספר הצירופים שלk איברים מתוך n על-ידי C)nk( 4לדוגמא אם נתונה קבוצה בת איברים abcdאז

4יש ארבעה צירופים של איבר אחד מתוך a b c d על כןC)41( = 4

4יש שישה צירופים של שני איברים מתוךab ac ad bc bd cd על כןC)42( = 6

4יש ארבעה צירופים של שלושה איברים מתוך abc abd acd bcd על כןC)43( = 4

4יש צירוף אחד של ארבעה איברים מתוך abcd על כןC)44( = 1

צירופים סימון מקובל נוסף למספר הצירופים שלk איברים מתוך n בנוסף

הוא הסימון הבא)C)nkלסימון לביטוי זה נהוג לקרואn ר Lח Mב k )n-choose-k( או n מעל kקל לראות שמתקיימות הזהויות הבאות

איך נחשב את מספר האפשרויות לבחורk איברים מתוך n יש לנוnאפשרויות לבחור את האיבר הראשון יש לנוn-1אפשרויות לבחור את האיבר השני יש לנוn-2אפשרויות לבחור את האיבר השלישי יש לנוn-k+1-אפשרויות לבחור את האיבר ה kי- קיבלנו בינתיים את המכפלהn)n-1()n-2(hellip)n-k+1(האם זו התשובה

צירופים חשוב לזכור כשאנחנו בוחרים תת-קבוצה בגודלk מתוך קבוצה בגודל

n כלומר קודם לבחור את אין חשיבות לסדר שבקבוצות a ואחכ b אמור להיספר כאותו הצירוף כמו קודם לבחור את bלבחור את

aואחכ לבחור את מה זה אומר על ערכו שלC)nk(

המכפלהn)n-1()n-2(hellip)n-k+1( נותנת לנו ביטוי גדול מדי משום שבביטוי זה יש חשיבות לסדר )כלומר צירופים זהים נספרים יותר מפעם

אחת( הפתרון הוא לחלק ביטוי זה במספר הסידורים האפשריים שלk האיברים

kשנבחרו קרי לחלק ב-לכן התשובה הסופית היא

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

צירופים ניתן לפתח את הביטויC)nk(באופן הבא

קיבלנו ביטוי המתאר אתn-בחר-kבמונחים של פונקציית העצרת

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

נתונה שורה שלN משבצות אשר חלקן צבועות בשחור וחלקן צבועות בלבן

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

של כל אחת מהן )צבע לבן הופך לשחור וצבע שחור הופך ללבן(

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

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

חידה לחימום

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

שהמשבצת המרכזית בשורה העליונה והמשבצת המרכזית בשורה התחתונה צבועות בשחור

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

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

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

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

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

כתבו תכנית מחשב בשפתC המקבלת כקלט את Nמחליטה האם להיות השחקן הפותח או השחקן השני ומשחקת מול

המשתמש כך שהיא תנצח תמיד

תזכורת - עצרת( פונקציה מתמטית מוכרת היא פונקצית העצרתfactorial )

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

n = 12 3 4 hellip nלדוגמא

5 = 12 3 4 5 = 120

7 = 12 3 4 5 6 7 = 5040 0 = 1מקובל להגדיר לפונקצית העצרת שימושים רבים במתמטיקה בעיקר

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

תזכורת - עצרת ניתן לכתוב פונקציה איטרטיבית )המשתמשת בלולאה( המקבלת

n ומחזירה את nמספר שלם אי-שלילי

ניתן לנצל את המבנה הרקורסיבי של הפונקציהn = n)n-1( ולכתוב פונקציה רקורסיבית הפותרת את אותה הבעיה

int factorial (int n)

int i product = 1

for (i=1 ilt=n i++)

product = i

return product

int factorial (int n)

if (n == 0)

return 1

else

return factorial(n-1)n

צירופים נתונה קבוצה שלn איברים לתת-קבוצה בעלת k איברים של קבוצה זו

n איברים מתוך k( של combination )צירוףנקרא נסמן את מספר הצירופים שלk איברים מתוך n על-ידי C)nk( 4לדוגמא אם נתונה קבוצה בת איברים abcdאז

4יש ארבעה צירופים של איבר אחד מתוך a b c d על כןC)41( = 4

4יש שישה צירופים של שני איברים מתוךab ac ad bc bd cd על כןC)42( = 6

4יש ארבעה צירופים של שלושה איברים מתוך abc abd acd bcd על כןC)43( = 4

4יש צירוף אחד של ארבעה איברים מתוך abcd על כןC)44( = 1

צירופים סימון מקובל נוסף למספר הצירופים שלk איברים מתוך n בנוסף

הוא הסימון הבא)C)nkלסימון לביטוי זה נהוג לקרואn ר Lח Mב k )n-choose-k( או n מעל kקל לראות שמתקיימות הזהויות הבאות

איך נחשב את מספר האפשרויות לבחורk איברים מתוך n יש לנוnאפשרויות לבחור את האיבר הראשון יש לנוn-1אפשרויות לבחור את האיבר השני יש לנוn-2אפשרויות לבחור את האיבר השלישי יש לנוn-k+1-אפשרויות לבחור את האיבר ה kי- קיבלנו בינתיים את המכפלהn)n-1()n-2(hellip)n-k+1(האם זו התשובה

צירופים חשוב לזכור כשאנחנו בוחרים תת-קבוצה בגודלk מתוך קבוצה בגודל

n כלומר קודם לבחור את אין חשיבות לסדר שבקבוצות a ואחכ b אמור להיספר כאותו הצירוף כמו קודם לבחור את bלבחור את

aואחכ לבחור את מה זה אומר על ערכו שלC)nk(

המכפלהn)n-1()n-2(hellip)n-k+1( נותנת לנו ביטוי גדול מדי משום שבביטוי זה יש חשיבות לסדר )כלומר צירופים זהים נספרים יותר מפעם

אחת( הפתרון הוא לחלק ביטוי זה במספר הסידורים האפשריים שלk האיברים

kשנבחרו קרי לחלק ב-לכן התשובה הסופית היא

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

צירופים ניתן לפתח את הביטויC)nk(באופן הבא

קיבלנו ביטוי המתאר אתn-בחר-kבמונחים של פונקציית העצרת

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

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

שהמשבצת המרכזית בשורה העליונה והמשבצת המרכזית בשורה התחתונה צבועות בשחור

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

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

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

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

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

כתבו תכנית מחשב בשפתC המקבלת כקלט את Nמחליטה האם להיות השחקן הפותח או השחקן השני ומשחקת מול

המשתמש כך שהיא תנצח תמיד

תזכורת - עצרת( פונקציה מתמטית מוכרת היא פונקצית העצרתfactorial )

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

n = 12 3 4 hellip nלדוגמא

5 = 12 3 4 5 = 120

7 = 12 3 4 5 6 7 = 5040 0 = 1מקובל להגדיר לפונקצית העצרת שימושים רבים במתמטיקה בעיקר

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

תזכורת - עצרת ניתן לכתוב פונקציה איטרטיבית )המשתמשת בלולאה( המקבלת

n ומחזירה את nמספר שלם אי-שלילי

ניתן לנצל את המבנה הרקורסיבי של הפונקציהn = n)n-1( ולכתוב פונקציה רקורסיבית הפותרת את אותה הבעיה

int factorial (int n)

int i product = 1

for (i=1 ilt=n i++)

product = i

return product

int factorial (int n)

if (n == 0)

return 1

else

return factorial(n-1)n

צירופים נתונה קבוצה שלn איברים לתת-קבוצה בעלת k איברים של קבוצה זו

n איברים מתוך k( של combination )צירוףנקרא נסמן את מספר הצירופים שלk איברים מתוך n על-ידי C)nk( 4לדוגמא אם נתונה קבוצה בת איברים abcdאז

4יש ארבעה צירופים של איבר אחד מתוך a b c d על כןC)41( = 4

4יש שישה צירופים של שני איברים מתוךab ac ad bc bd cd על כןC)42( = 6

4יש ארבעה צירופים של שלושה איברים מתוך abc abd acd bcd על כןC)43( = 4

4יש צירוף אחד של ארבעה איברים מתוך abcd על כןC)44( = 1

צירופים סימון מקובל נוסף למספר הצירופים שלk איברים מתוך n בנוסף

הוא הסימון הבא)C)nkלסימון לביטוי זה נהוג לקרואn ר Lח Mב k )n-choose-k( או n מעל kקל לראות שמתקיימות הזהויות הבאות

איך נחשב את מספר האפשרויות לבחורk איברים מתוך n יש לנוnאפשרויות לבחור את האיבר הראשון יש לנוn-1אפשרויות לבחור את האיבר השני יש לנוn-2אפשרויות לבחור את האיבר השלישי יש לנוn-k+1-אפשרויות לבחור את האיבר ה kי- קיבלנו בינתיים את המכפלהn)n-1()n-2(hellip)n-k+1(האם זו התשובה

צירופים חשוב לזכור כשאנחנו בוחרים תת-קבוצה בגודלk מתוך קבוצה בגודל

n כלומר קודם לבחור את אין חשיבות לסדר שבקבוצות a ואחכ b אמור להיספר כאותו הצירוף כמו קודם לבחור את bלבחור את

aואחכ לבחור את מה זה אומר על ערכו שלC)nk(

המכפלהn)n-1()n-2(hellip)n-k+1( נותנת לנו ביטוי גדול מדי משום שבביטוי זה יש חשיבות לסדר )כלומר צירופים זהים נספרים יותר מפעם

אחת( הפתרון הוא לחלק ביטוי זה במספר הסידורים האפשריים שלk האיברים

kשנבחרו קרי לחלק ב-לכן התשובה הסופית היא

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

צירופים ניתן לפתח את הביטויC)nk(באופן הבא

קיבלנו ביטוי המתאר אתn-בחר-kבמונחים של פונקציית העצרת

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

תזכורת - עצרת( פונקציה מתמטית מוכרת היא פונקצית העצרתfactorial )

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

n = 12 3 4 hellip nלדוגמא

5 = 12 3 4 5 = 120

7 = 12 3 4 5 6 7 = 5040 0 = 1מקובל להגדיר לפונקצית העצרת שימושים רבים במתמטיקה בעיקר

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

תזכורת - עצרת ניתן לכתוב פונקציה איטרטיבית )המשתמשת בלולאה( המקבלת

n ומחזירה את nמספר שלם אי-שלילי

ניתן לנצל את המבנה הרקורסיבי של הפונקציהn = n)n-1( ולכתוב פונקציה רקורסיבית הפותרת את אותה הבעיה

int factorial (int n)

int i product = 1

for (i=1 ilt=n i++)

product = i

return product

int factorial (int n)

if (n == 0)

return 1

else

return factorial(n-1)n

צירופים נתונה קבוצה שלn איברים לתת-קבוצה בעלת k איברים של קבוצה זו

n איברים מתוך k( של combination )צירוףנקרא נסמן את מספר הצירופים שלk איברים מתוך n על-ידי C)nk( 4לדוגמא אם נתונה קבוצה בת איברים abcdאז

4יש ארבעה צירופים של איבר אחד מתוך a b c d על כןC)41( = 4

4יש שישה צירופים של שני איברים מתוךab ac ad bc bd cd על כןC)42( = 6

4יש ארבעה צירופים של שלושה איברים מתוך abc abd acd bcd על כןC)43( = 4

4יש צירוף אחד של ארבעה איברים מתוך abcd על כןC)44( = 1

צירופים סימון מקובל נוסף למספר הצירופים שלk איברים מתוך n בנוסף

הוא הסימון הבא)C)nkלסימון לביטוי זה נהוג לקרואn ר Lח Mב k )n-choose-k( או n מעל kקל לראות שמתקיימות הזהויות הבאות

איך נחשב את מספר האפשרויות לבחורk איברים מתוך n יש לנוnאפשרויות לבחור את האיבר הראשון יש לנוn-1אפשרויות לבחור את האיבר השני יש לנוn-2אפשרויות לבחור את האיבר השלישי יש לנוn-k+1-אפשרויות לבחור את האיבר ה kי- קיבלנו בינתיים את המכפלהn)n-1()n-2(hellip)n-k+1(האם זו התשובה

צירופים חשוב לזכור כשאנחנו בוחרים תת-קבוצה בגודלk מתוך קבוצה בגודל

n כלומר קודם לבחור את אין חשיבות לסדר שבקבוצות a ואחכ b אמור להיספר כאותו הצירוף כמו קודם לבחור את bלבחור את

aואחכ לבחור את מה זה אומר על ערכו שלC)nk(

המכפלהn)n-1()n-2(hellip)n-k+1( נותנת לנו ביטוי גדול מדי משום שבביטוי זה יש חשיבות לסדר )כלומר צירופים זהים נספרים יותר מפעם

אחת( הפתרון הוא לחלק ביטוי זה במספר הסידורים האפשריים שלk האיברים

kשנבחרו קרי לחלק ב-לכן התשובה הסופית היא

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

צירופים ניתן לפתח את הביטויC)nk(באופן הבא

קיבלנו ביטוי המתאר אתn-בחר-kבמונחים של פונקציית העצרת

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

תזכורת - עצרת ניתן לכתוב פונקציה איטרטיבית )המשתמשת בלולאה( המקבלת

n ומחזירה את nמספר שלם אי-שלילי

ניתן לנצל את המבנה הרקורסיבי של הפונקציהn = n)n-1( ולכתוב פונקציה רקורסיבית הפותרת את אותה הבעיה

int factorial (int n)

int i product = 1

for (i=1 ilt=n i++)

product = i

return product

int factorial (int n)

if (n == 0)

return 1

else

return factorial(n-1)n

צירופים נתונה קבוצה שלn איברים לתת-קבוצה בעלת k איברים של קבוצה זו

n איברים מתוך k( של combination )צירוףנקרא נסמן את מספר הצירופים שלk איברים מתוך n על-ידי C)nk( 4לדוגמא אם נתונה קבוצה בת איברים abcdאז

4יש ארבעה צירופים של איבר אחד מתוך a b c d על כןC)41( = 4

4יש שישה צירופים של שני איברים מתוךab ac ad bc bd cd על כןC)42( = 6

4יש ארבעה צירופים של שלושה איברים מתוך abc abd acd bcd על כןC)43( = 4

4יש צירוף אחד של ארבעה איברים מתוך abcd על כןC)44( = 1

צירופים סימון מקובל נוסף למספר הצירופים שלk איברים מתוך n בנוסף

הוא הסימון הבא)C)nkלסימון לביטוי זה נהוג לקרואn ר Lח Mב k )n-choose-k( או n מעל kקל לראות שמתקיימות הזהויות הבאות

איך נחשב את מספר האפשרויות לבחורk איברים מתוך n יש לנוnאפשרויות לבחור את האיבר הראשון יש לנוn-1אפשרויות לבחור את האיבר השני יש לנוn-2אפשרויות לבחור את האיבר השלישי יש לנוn-k+1-אפשרויות לבחור את האיבר ה kי- קיבלנו בינתיים את המכפלהn)n-1()n-2(hellip)n-k+1(האם זו התשובה

צירופים חשוב לזכור כשאנחנו בוחרים תת-קבוצה בגודלk מתוך קבוצה בגודל

n כלומר קודם לבחור את אין חשיבות לסדר שבקבוצות a ואחכ b אמור להיספר כאותו הצירוף כמו קודם לבחור את bלבחור את

aואחכ לבחור את מה זה אומר על ערכו שלC)nk(

המכפלהn)n-1()n-2(hellip)n-k+1( נותנת לנו ביטוי גדול מדי משום שבביטוי זה יש חשיבות לסדר )כלומר צירופים זהים נספרים יותר מפעם

אחת( הפתרון הוא לחלק ביטוי זה במספר הסידורים האפשריים שלk האיברים

kשנבחרו קרי לחלק ב-לכן התשובה הסופית היא

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

צירופים ניתן לפתח את הביטויC)nk(באופן הבא

קיבלנו ביטוי המתאר אתn-בחר-kבמונחים של פונקציית העצרת

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

צירופים נתונה קבוצה שלn איברים לתת-קבוצה בעלת k איברים של קבוצה זו

n איברים מתוך k( של combination )צירוףנקרא נסמן את מספר הצירופים שלk איברים מתוך n על-ידי C)nk( 4לדוגמא אם נתונה קבוצה בת איברים abcdאז

4יש ארבעה צירופים של איבר אחד מתוך a b c d על כןC)41( = 4

4יש שישה צירופים של שני איברים מתוךab ac ad bc bd cd על כןC)42( = 6

4יש ארבעה צירופים של שלושה איברים מתוך abc abd acd bcd על כןC)43( = 4

4יש צירוף אחד של ארבעה איברים מתוך abcd על כןC)44( = 1

צירופים סימון מקובל נוסף למספר הצירופים שלk איברים מתוך n בנוסף

הוא הסימון הבא)C)nkלסימון לביטוי זה נהוג לקרואn ר Lח Mב k )n-choose-k( או n מעל kקל לראות שמתקיימות הזהויות הבאות

איך נחשב את מספר האפשרויות לבחורk איברים מתוך n יש לנוnאפשרויות לבחור את האיבר הראשון יש לנוn-1אפשרויות לבחור את האיבר השני יש לנוn-2אפשרויות לבחור את האיבר השלישי יש לנוn-k+1-אפשרויות לבחור את האיבר ה kי- קיבלנו בינתיים את המכפלהn)n-1()n-2(hellip)n-k+1(האם זו התשובה

צירופים חשוב לזכור כשאנחנו בוחרים תת-קבוצה בגודלk מתוך קבוצה בגודל

n כלומר קודם לבחור את אין חשיבות לסדר שבקבוצות a ואחכ b אמור להיספר כאותו הצירוף כמו קודם לבחור את bלבחור את

aואחכ לבחור את מה זה אומר על ערכו שלC)nk(

המכפלהn)n-1()n-2(hellip)n-k+1( נותנת לנו ביטוי גדול מדי משום שבביטוי זה יש חשיבות לסדר )כלומר צירופים זהים נספרים יותר מפעם

אחת( הפתרון הוא לחלק ביטוי זה במספר הסידורים האפשריים שלk האיברים

kשנבחרו קרי לחלק ב-לכן התשובה הסופית היא

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

צירופים ניתן לפתח את הביטויC)nk(באופן הבא

קיבלנו ביטוי המתאר אתn-בחר-kבמונחים של פונקציית העצרת

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

צירופים סימון מקובל נוסף למספר הצירופים שלk איברים מתוך n בנוסף

הוא הסימון הבא)C)nkלסימון לביטוי זה נהוג לקרואn ר Lח Mב k )n-choose-k( או n מעל kקל לראות שמתקיימות הזהויות הבאות

איך נחשב את מספר האפשרויות לבחורk איברים מתוך n יש לנוnאפשרויות לבחור את האיבר הראשון יש לנוn-1אפשרויות לבחור את האיבר השני יש לנוn-2אפשרויות לבחור את האיבר השלישי יש לנוn-k+1-אפשרויות לבחור את האיבר ה kי- קיבלנו בינתיים את המכפלהn)n-1()n-2(hellip)n-k+1(האם זו התשובה

צירופים חשוב לזכור כשאנחנו בוחרים תת-קבוצה בגודלk מתוך קבוצה בגודל

n כלומר קודם לבחור את אין חשיבות לסדר שבקבוצות a ואחכ b אמור להיספר כאותו הצירוף כמו קודם לבחור את bלבחור את

aואחכ לבחור את מה זה אומר על ערכו שלC)nk(

המכפלהn)n-1()n-2(hellip)n-k+1( נותנת לנו ביטוי גדול מדי משום שבביטוי זה יש חשיבות לסדר )כלומר צירופים זהים נספרים יותר מפעם

אחת( הפתרון הוא לחלק ביטוי זה במספר הסידורים האפשריים שלk האיברים

kשנבחרו קרי לחלק ב-לכן התשובה הסופית היא

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

צירופים ניתן לפתח את הביטויC)nk(באופן הבא

קיבלנו ביטוי המתאר אתn-בחר-kבמונחים של פונקציית העצרת

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

צירופים חשוב לזכור כשאנחנו בוחרים תת-קבוצה בגודלk מתוך קבוצה בגודל

n כלומר קודם לבחור את אין חשיבות לסדר שבקבוצות a ואחכ b אמור להיספר כאותו הצירוף כמו קודם לבחור את bלבחור את

aואחכ לבחור את מה זה אומר על ערכו שלC)nk(

המכפלהn)n-1()n-2(hellip)n-k+1( נותנת לנו ביטוי גדול מדי משום שבביטוי זה יש חשיבות לסדר )כלומר צירופים זהים נספרים יותר מפעם

אחת( הפתרון הוא לחלק ביטוי זה במספר הסידורים האפשריים שלk האיברים

kשנבחרו קרי לחלק ב-לכן התשובה הסופית היא

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

צירופים ניתן לפתח את הביטויC)nk(באופן הבא

קיבלנו ביטוי המתאר אתn-בחר-kבמונחים של פונקציית העצרת

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

צירופים ניתן לפתח את הביטויC)nk(באופן הבא

קיבלנו ביטוי המתאר אתn-בחר-kבמונחים של פונקציית העצרת

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

צירופיםניתן להשתמש בזהות

-k-בחרn המחשבת את ערכו של Cעל מנת לפתח פונקציה בשפת

unsigned long choose (int n int k)

return factorial(n) (factorial(k) factorial(n-k))

נקבל כי1 = 0מכיוון שהגדרנו

קל לראות גם כי מתקיימת הזהות הבאה

-בנוסף נקבע שC)nk( = 0 עבור k gt n

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

צירופים האם ישנה דרך נוספת לחשב את

ביטוי זה מציין את מספר הדרכים לבחורk איברים מתוך n-נסמן אחד מnהאיברים שמתוכם עלינו לבחור ונכנה אותו האיבר המיוחד כשאנחנו בוחריםk איברים מתוך n יש שתי אפשרויות או שאנחנו מכלילים

האיברים שאנחנו בוחרים או שלא מכלילים אותוkאת האיבר המיוחד בין אם אנחנו לא מכלילים את האיבר המיוחד אז עלינו לבחורk איברים מתוך

n-1 איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס הצירופים הואn-1 איברים מתוך kלבחירת

אם אנחנו כן מכלילים את האיבר המיוחד אז נותר לנו לבחורk-1 איברים איברים )כל איברי הקבוצה שאינם האיבר המיוחד( מס n-1מתוך

הואn-1 איברים מתוך k-1הצירופים לבחירת

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

צירופיםניתן להשתמש בזהות

על מנת לפתח את הפונקציה הרקורסיבית הבאה

unsigned long choose (int n int k)

if (k gt n)

return 0

if (k == 0 || k == n)

return 1

return (choose(n-1k) + choose(n-1k-1))

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

נסדר אתC)nk(בצורת משולש ברור שכל הביטויים שעל שתי הצלעות

1 הצדדיות של המשולש שווים כולם ל- כמו כן מתקייםC)n1( = n לכל nלפי הזהות

נובע שכל איבר במשולש שווה לסכום

שני האיברים שמעליו

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

17 הצרפתי מהמאה ה-(Blaise Pascal בלייז פסקל )

משולש פסקל

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

משולש פסקל פסקל גילה את משולש פסקל כשעסק בחישובים הסתברותיים שונים

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

( קיבלנו את משולש סרפינסקיSierpinskirsquos Triangle) נסתכל על ערכי המשולש כעל ספרות

(0 לבן = 1 בינאריות )שחור = נעיין במספרים הבינאריים שהתקבלו

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

משולש פסקלאם נסתכל על כל שורה כעל מספר בינארי נקבל את סדרת המספרים

1 3 5 15 17 51 85 255 257 771 1285 3855 4369hellip מספרים אלו מציינים אילו מצולעים משוכללים בעלי מס אי-זוגי של

צלעות ניתן לבנות בעזרת סרגל ומחוגהנחקרה כבר בידי בנייה גיאומטרית בסרגל ובמחוגה

( ושאר Euclid )אוקלידסהמתמטיקאים ביוון העתיקה

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

מיזוג נתונים לנו שני מערכיםarr1-ו arr2 בסדר ממוינים אשר שניהם

עולה מעוניינים ליצור מערך שלישיarr3 שיכיל את כל האיברים שבשני

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

נציב שני מצביעים על תחילתו של כל אחד מהמערכיםarr1-ו arr2 נשווה את ערכיהם של האיברים בתאים שעליהם מורים המצביעים

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

השניים ונקדם את המצביע שהצביע על איבר זה אל התא הבא במערך

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

הנותרים במערך השני

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

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

הצעד הבסיסי באלגוריתם המיזוג כולל במקרה הגרוע ביותר(WC השוואה בין שני ערכים במערך העתקת איבר למערך )

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

)Θ)n נקבל כי סיבוכיות זמן הריצה היא nנסמן גודל זה ב-

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

מיזוג

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

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

n באורך Aמערך אם נחלק אתA לשני תת-מערכים שווים פחות או יותר בגודלם

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

נשאלת השאלה מהי דרך המיון שנשתמש בה כדי למיין את שני אולי נשתמש למשל באחד האלגוריתמים למיון Aחלקי המערך

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

אשר תישאר ריבועית

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

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

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

נחלק כל אחד מחצאים אלה לשני חלקים )שגודל כל אחד מהם רבעמגודלו של המערך המקורי(

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

תת-מערך זה כבר ממוין 1בשלב כלשהו נגיע לתת-מערך בגודל ולכן הרקורסיה תיעצר

מיון מיזוגשיטת מיון זו מכונה( Merge Sort)

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

מיון מיזוגנכתוב את האלגוריתם

(anמיון-מיזוג)a אזי החזר n = 1אם

אחרתb לתוך מערך a האיברים הראשונים של n2הכנס את c לתוך מערך a האיברים האחרונים של n2הכנס את (bn2מיון-מיזוג)(cn2מיון-מיזוג)

והחזר אותוa למערך c ו-bמזג את שני המערכים

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

T)n( =

Θ)1(

n

אם 1 =

2T)n2( + Θ)n( n gt 1 אם

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

מיון מיזוג

0 1 2 7 54 8 3

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

04 8 3

מיון מיזוג

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 504 8 3

מיון מיזוג

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 503

4 8

מיון מיזוג

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

034 8

מיון מיזוג

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

038

4

מיון מיזוג

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

03

4 8

מיון מיזוג

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

30

8

4 03

מיון מיזוג

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

3084 03

מיון מיזוג

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

3084

3

0

מיון מיזוג

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

3084

3 0

מיון מיזוג

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

084

3

מיון מיזוג

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 5

3084

מיון מיזוג

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 530 0

384

30

מיון מיזוג

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 530 3 0

84

30

מיון מיזוג

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 530 3 0

8

304

מיון מיזוג

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 7 530 3 0 30 84

מיון מיזוג

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

7 530 3 0 30 84

1 2

מיון מיזוג

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 3 0 30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 3 0 30 84

2 7 5

1

מיון מיזוג

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 3 0 30 84

7 5

1 2

מיון מיזוג

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 3 0 30 84

1 7 5

2

מיון מיזוג

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30

30 3 0

30

30 84

1 2 7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 3 0 30 84

1 2

7 5

מיון מיזוג

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 3 0 30 84

1 2 5

7

מיון מיזוג

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 3 0 30 84

1 2 5 7

מיון מיזוג

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

130 3 0 30 84

2 5 7

מיון מיזוג

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 230 3 0 30 84

5 7

מיון מיזוג

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 530 3 0 30 84

7

מיון מיזוג

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

1 2 5 730 3 0 30 84

מיון מיזוג

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 0

1 2 5 733 0

30

30 84

מיון מיזוג

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 1 0

2 5 733 0

30

30 84

מיון מיזוג

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 1 0

5 733 0

30

30

2

84

מיון מיזוג

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

30 1 0

5 730

30

30

32

84

מיון מיזוג

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

3 40 1 0

5 730

30

30

32

8

מיון מיזוג

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

3 4 50 1 0

730

30

30

32

8

מיון מיזוג

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

3 4 5 70 1 0

30

30

30

32

8

מיון מיזוג

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

3 4 5 7 80 1 0

30

30

30

32

מיון מיזוג

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

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

איבריםnמיון-מיזוג הפועל על מערך שבו ראינו כי נוסחת הנסיגה המתאימה היאT)n( = 2T)n2( + Θ)n( ניתן לפתור אותה על-ידי שימוש בשיטת האיטרציה

T)n( = 2T)n2( + n=

= 2)2T)n4( + n2( + n =

= 4T)n4( + n + n == 4)2T)n8( + n4( + 2n =

= 8T)n8( + n + 2n =

= 8T)n8( + 3n =

hellip

= 2kT)n2k( + kn

סיימו את החישוב כתרגיל וקבלו )T)n( = Θ)nlognשהפתרון הוא

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

תרגיל )אביב תשסה(נגדיר

הנוסחה הרקורסיבית בעבורf)n(היא

1

2

3

4

n

111f(n)

1)-f(n1f(n) 1)f(n1f(n) 1)f(n1f(n) 2)f(n2f(n)

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

תרגיל )אביב תשסב( נתונה שפה שבה האלף-בית הואab-נסמן ב f)n( את

-ים a שאין בה שני nמספר המילים בשפה זו באורך סמוכים

)לכן )בחר את התשובה הנכונה

1 f)n(=f)n-1(+2f)n-2(

2 f)n(=f)n-2(+2

3 f)n(=f)n-1(+f)n-2(

4 f)n(=1+f)n-1(+2+f)n-2(

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

נתונה סדרה חשבונית

a a + d a + 2d a + 3d a + 4d hellip a + ndhellip

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

1S)n( = S)n-1( + d

2S)n( = S)n-1( + a + )n-1( d

3S)n( = S)n-1( + n d

4S)n( = S)n-1( d

תרגיל )אביב תשסה(

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

תרגיל )אביב תשסו(נתונה סדרה הנדסית

a a t a t2 a t3 a t4 hellip a tnhellip

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

1S)n( = t S)n-1(

2S)n( = t + S)n-1(

3S)n( = S)n-1( + a tn-1

4S)n( = S)n-1( a tn-1

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4

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

תרגיל )אביב תשסב( להלן אלגוריתם בשםTrouble)n(הכתוב בעברית מובנית

S1 בצע nle1 אם 1 אחרת ndash בצע

בצעn עד 1 מ-iעבור 11 111 Trouble)n2(

בצעn עד 1 מ-iעבור 12 121 Trouble)n2(

סוף האלגוריתם2

נתון כיS1 הוא משפט פשוט והזמן הדרוש לביצועו הוא O)1(-נסמן ב T)n( )T)nאת פונקציית זמן הריצה של האלגוריתם הנתון נוסחת הנסיגה עבור

היא

1 T)n( = 2T)n2( + Θ)1(2 T)n( = 2nT)n2( + Θ)1(

3 T)n( = 2T)n2( + Θ)n( אף תשובה אינה נכונה4