Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "מבנה נתונים ואלגוריתמים"— Presentation transcript:

1 094223 - מבנה נתונים ואלגוריתמים
תרגול 1 חזרה על מבני נתונים בסיסיים חזרה על לוגריתמים, טורים, אינדוקציה, פונקציות. קצב גידול פונקציות וחסמים אסימפטוטיים. סמסטר אביב 2005 מבנה נתונים ואלגוריתמים - תרגול 1

2 מוסכמות פסאודו-קוד: הבחנה בין גושי קוד באמצעות אינדנטציה.
סימן מציין הערה. המשתנים הם מקומיים. הפרמטרים מועברים לשגרות לפי ערך (by value). מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

3 מבני נתונים פשוטים מחסנית - Stack תור – Queue
רשימה מקושרת - Linked List מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

4 מחסנית - Stack מדיניות: מאפיין: פעולות: LIFO – Last In First Out
Top[S] אינדקס האיבר האחרון שהוכנס. פעולות: Stack-Empty(S) Push(S,x) Pop(S) מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

5 מחסנית - Stack 15 6 2 9 1 Top[S] 3 4 5 7 S מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

6 מחסנית - Stack הכנסה: 15 6 2 9 1 3 Top[S] 4 5 7 S
מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

7 מחסנית - Stack שליפה: 15 6 2 9 1 3 Top[S] 4 5 7 S
מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

8 תור - Queue מדיניות: מאפיינים: פעולות: FIFO – First In First Out
Head[Q] - אינדקס התחלת התור. Tail[Q] - אינדקס סוף התור. פעולות: Enqueue(Q,x) Dequeue(Q) מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

9 תור - Queue 1 2 3 4 5 6 7 8 9 10 11 12 Q 15 Head[Q] 6 9 2 1 Tail[Q]
מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

10 תור - Queue הכנסה: 1 2 3 4 5 6 7 8 9 10 11 12 Q 15 Head[Q] 6 9 2 1 3 8
20 Tail[Q] מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

11 תור - Queue שליפה: 1 2 3 4 5 6 7 8 9 10 11 12 Q 15 Head[Q] 6 9 2 1 3 8
20 Tail[Q] מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

12 רשימה מקושרת – Linked List
אוסף של אובייקטים המצביעים אחד על השני. מאפיינים: Head[L] - אינדקס התחלת הרשימה. Next[x] – האיבר הבא ברשימה. Prev[x] – האיבר הקודם ברשימה. פעולות: List-Search(L,k) List-Insert(L,x) List-Delete(L,x) מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

13 רשימה מקושרת – Linked List
3 Next איבר ברשימה מקושרת: איבר ברשימה דו מקושרת: Prev מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

14 רשימה מקושרת – Linked List
Head[L] 3 9 1 12 25 9 1 12 Head[L] 3 מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

15 שאלה הראה כיצד ניתן לממש תור באמצעות שתי מחסניות.
מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

16 פתרון הנחות: מימשנו את שלושת הפעולות של המחסנית
קיימות שתי מחסניות S1,S2 גדולות כרצוננו (אין בעיית Overflow) מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

17 פתרון (המשך) Enqueue(Q,x) Push (S1,x) Dequeue(Q)
if Stack-Empty (S1) return error ”Underflow” while not Stack-Empty(S1) Push( S2, Pop(S1) ) temp  Pop(S2) while not Stack-Empty(S2) Push( S1, Pop(S2) ) Return temp מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

18 ניתוח אלגוריתמים חישוב והערכה של משאבים שהאלגוריתם דורש.
מאפשר מציאה של האלגוריתם היעיל ביותר. גודל הקלט (input size): מספר הפריטים בקלט. זמן ריצה (running time): מספר פעולות יסוד או "צעדים" מבוצעים. מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

19 המקרה הגרוע ביותר “Worst-Case running time”
מהווה חסם עליון על זמן ריצה לכל קלט אפשרי. T(n) – זמן הריצה מוגדרת על גודלי קלט שהם מספרים שלמים בלבד. מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

20 Θ - חסם הדוק אסימפטוטית “Asymptotically tight bound”
בהינתן פונקציה g(n) קבוצת הפונקציות: מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

21 O - חסם אסימפטוטי עליון “Asymptotically upper bound”
בהינתן פונקציה g(n) קבוצת הפונקציות: o – חסם עליון שאינו הדוק אסימפטוטית מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

22  - חסם אסימפטוטי תחתון “Asymptotically lower bound”
בהינתן פונקציה g(n) קבוצת הפונקציות:  - חסם תחתון שאינו הדוק אסימפטוטית מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

23 סיכום חסמים אסימפטוטיים
מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

24 משפט מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

25 השוואת פונקציות טרנזיטיביות (לכל החסמים האסימפטוטיים)
רפלקסיביות (לכל החסמים ההדוקים האסימפטוטיים) סימטרייה (לחסם הדוק בלבד) סימטרייה מוחלפת מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

26 פולינומים פולינום ב – n מדרגה d (polynomial in n of degree d):
עבור פולינום חיובי אסימפטוטית (אם ורק אם ad>0) מדרגה d מתקיים: מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

27 חזקות ולוגריתמים (am)n = amn amn = anm aman=am+n
לוגריתם בינרי: lgn = log2n לוגריתם טבעי: lnn = logen העלאה בחזקה: lgkn =(lgn)k הרכבה: lglgn = lg(lgn) מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

28 לוגריתמים (המשך) מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

29 טורים טור חשבוני: טור הנדסי: טור הרמוני:
מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

30 אינדוקציה מראים נכונות הבסיס עבור n0 חיובי
מניחים נכונות עבור n0 <n כלשהו מוכיחים נכונות עבור n+1 מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

31 קצב גידול של פונקציות פונקציה לוגריתמית: logn פונקציה לינארית: 2n+25
פונקציה פולילוגריתמית: nlogn logbn=o(na) פונקציה פולינומית:aini nb=o(an) n!=o(nn) n!=(n2) מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

32 שאלה 1 סדר את הפונקציות הבאות לפי שעור הגידול שלהן:
מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

33 סיכום קצב גידול פונקציות
מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

34 שאלה 2 יהיו f1(n)=O(g1(n)) ו f2(n)=O(g2(n)). האם תמיד מתקיים:
מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005

35 שאלה 3 מהו זמן הריצה של התוכנית הנתונה ? a0 for i1 to n
do for j1 to i do aa+1 print a מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005


Download ppt "מבנה נתונים ואלגוריתמים"

Similar presentations


Ads by Google