Introduction to Algorithms by T H Cormen C
: ספרים Introduction to Algorithms by: T. H. Cormen, C. E. Leiserson, R. L. Rivest : ספרי עזר Data Structures and Algorithms by: Aho, Hopcroft, Ulman : ספר מומלץ T. H. Cormen : חומר חובה : פרקים Cormen I. 2, 4 II. 7, 8, 9 10 III. 11, 12, 13 V. 19, 22 כל החומר הנלמד בכיתה 9/12/2021 Data Structures, CS TAU 2
: 2 דוגמה מקל : נתון לחתוך את המקל לחתיכות של ס”מ ומטה : צריך פתרון איטרטיבי Proc CUT 1(stick( while length(stick)>1 do: chop a piece of 1 cm from stick end; return; end; פתרון רקורסיבי Proc CUT 2(stick( If length(stick)<1 return; else do: chop a piece of 1 cm from stick let s-stick be the remaining part CALL CUT 2(s-stick( end; return; end; 9/12/2021 Data Structures, CS TAU 5
פתרון רקורסיבי נוסף Proc CUT 3(stick( If length(stick)<1 return else do: cut stick to two parts: stick 1 and stick 2 CALL CUT 3(stick 1( CALL CUT 3(stick 2( return; end; : תשומת לב הם פתרונות תקיפים CUT 3 ו CUT 2 לקרוא ל CUT 3 אפשר בתוך !CUT 2 לקרוא ל CUT 2 אפשר בתוך !CUT 3 9/12/2021 Data Structures, CS TAU 6
: 3 דוגמה . לחסר ולמנות , נתון מחשב שיודע רק לחבר ( שלם X עבור SQUARE(X) )בנה שיגרה X 2 חשב את פתרון רקורסיבי )n+1)2 = n 2+n+n+1 n 2 = (n-1)2+n+n-1 Procedure SQUARE(N( if N = 1 return (1( else do M = SQUARE(N-1; ( return (M+N+N-1; ( end; פתרון איטרטיבי Procedure SQUARE 2(N( M = 0; for I = 1 to N M = M + N; end; return (M; ( end; 9/12/2021 Data Structures, CS TAU 7
: 4 דוגמה : מגדלי האנוי C - תוך שימוש ב B - ל A - • העבר מ ! • אסור שגדול יהיה על קטן פתרון רקורסיבי Proc HANOI(From, To, By, N( *) move top N rings from From to To using By(* if N = 1 move ring from From to top of To end return; else do: CALL HANOI(From, By, To, N - 1; ( move top of From to To CALL HANOI(By, To, From, N - 1; ( return; end; 9/12/2021 Data Structures, CS TAU 8
: 5 דוגמה A 1, …, AN איבריםבמערך N של MAXALL מציאת N - השמת המקסימום במקום ה - פתרון איטרטיבי temp: = A(1; ( itemp: = 1; for j=1 to N do if A(j) > temp itemp: = j; temp: = A(j; ( end; A(itemp): = A(N; ( A(N): = temp; פתרון רקורסיבי if N=1 return else begin CALL MAXALL(N-1; ( if A(N)<A(N-1) then temp= A(N; ( A(N)= A(N-1; ( A(N-1)= temp; end; return; end; 9/12/2021 Data Structures, CS TAU 9
: 6 דוגמה MAXALL בהנחה שממומשת השגרה SORT(N) מיון מערך פתרון איטרטיבי Do I= N to 1 by -1 CALL MAXALL(I( end; פתרון רקורסיבי Proc SORT(N( */sorts the elements A(1)…. A(N/* ( if N = 1 return else begin CALL MAXALL(N; ( CALL SORT(N-1; ( end; 9/12/2021 Data Structures, CS TAU 10
- Slides: 17