Download presentation
Presentation is loading. Please wait.
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 מהו זמן הריצה של התוכנית הנתונה ? a0 for i1 to n
do for j1 to i do aa+1 print a מבנה נתונים ואלגוריתמים – תרגול 1 סמסטר אביב 2005
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.