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

Slides:



Advertisements
Similar presentations
תרגול 8 Skip Lists Hash Tables. Skip Lists Definition: – A skip list is a probabilistic data structure where elements are kept sorted by key. – It allows.
Advertisements

טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
קורס אלגוריתמים ספר הקורס: מרצה: נעם ניסן מתרגלים:
 ADT של מבני נתונים  ADT גנריים  בחירת מבני נתונים  שאלה לדוגמה.
ADT של מבני נתונים ADT גנריים בחירת מבני נתונים שאלה לדוגמה
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 6 Dynamic data structures Motivation Common dynamic ADTs Stacks, queues, lists:
מבני נתונים 1 – מבנה התרגולים
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
Growth of Functions: Asymptotic Notations Direct Address Tables Hashing.
1 תוכן העניינים הקדמה שיטה כללית לכתיבת תוכנית שיטה כללית לכתיבת תוכנית יעילות של תוכנית (סיבוכיות) יעילות של תוכנית (סיבוכיות) מדדי סיבוכיות נוספים מדדי.
1 מבוא למדעי המחשב תרגול מספר 11 2 הנושאים להיום סיבוכיות זמן ומקום של אלגוריתמים. למה צריך ללמוד את זה? 100% יופיע במבחן מדד ליעילות של אלגוריתמים.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Data Structures and Algorithms Introduction to Complexity Gal A. Kaminka Computer Science Department.
10.Elementary data structures Hsu, Lih-Hsing. Computer Theory Lab. Chapter 11P Stacks and queues Stacks and queues are dynamic set in which element.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
מחסנית (Stack): מבנה נתונים עליו מוגדרות הפעולות הבאות:
מבוא למדעי המחשב תרגול מספר 11.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
Stacks and Queues. Stack ADT סוג של מערך מוגבל מהר מאוד ולוקחים מעט זכרון שימוש ב LIFO – LIFO (Last In, First Out) lists. –אפשר להוסיף רק בסוף הרשימה.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
יחס סדר חלקי.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה
Stacks and Queues Dr. Andrew Wallace PhD BEng(hons) EurIng
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מבנה מחשבים תרגול מספר 3. טענה על עצים משפט: בעץ שדרגת כל קודקודיו חסומה ב-3, מספר העלים ≤ מספר הקודקודים הפנימיים + 2. הוכחה: באינדוקציה על n, מספר הקודקודים.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
תרגול מס ' 1: מבני נתונים – מבוא. כללי מבנה נתונים – דרך לארגן נתונים במחשב ולגשת אליהם. בקורס זה נלמד על מבני נתונים שונים אשר משמשים לבניית אלגוריתמים.
1 מבוא למדעי המחשב הרצאה 21: Queue, Iterator & Iterable.
1 מבוא למחשב שפת C תרגילי חזרה. 2 תרגיל 1 : מחשבון קלט : תרגיל חשבוני המורכב ממספרים שלמים עם פעולות חשבוניות ביניהם. התרגיל מסתיים ב =. אפשריים רווחים.
מחסנית ותור Stacks and Queues. מחסנית Stack מחסנית - Stack ADT סוג של מערך מוגבל מהיר מאוד ותופס מעט זיכרון שימוש ב LIFO – LIFO (Last In, First Out)
Practice session 6 Sequence Operations Partial Evaluation Lazy Lists.
תרגול 8 Skip Lists Hash Tables. Skip Lists Definition: – A skip list is a probabilistic data structure where elements are kept sorted by key. – It allows.
Introduction to Complexity. בעיה פשוטה במיוחד סדר שלושה מספרים לפי סדר מונוטוני עולה יש למישהו רעיון?
מחסנית ותור Stacks and Queues. מחסנית Stack מחסנית - Stack ADT סוג של מערך מוגבל מהיר מאוד ותופס מעט זיכרון שימוש ב LIFO – LIFO (Last In, First Out)
Chapter 10 Elementary data structures Lee, Hsiu-Hui Ack: This presentation is based on the lecture slides from Hsu, Lih-Hsing, as well as various materials.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
מבני נתונים רשימה מקושרת, מחסנית ותור
CPSC 311 Section 502 Analysis of Algorithm
ערמות make-heap Operation insert find-min delete-min union decrease-key delete 1 Binary Heap log n n Binomial Heap Fibonacci Heap † Relaxed Heap Linked.
מבוא למדעי המחשב סיבוכיות.
CS 583 Analysis of Algorithms
Elementary Data Structures
ניתוח זמן ריצה (על קצה המזלג)
תירגול 14: מבני נתונים דינאמיים
הרצאה 06 רשימות מקושרות קרן כליף.
ניתוח זמן ריצה (על קצה המזלג)
תרגול 4 – ניהול תהליכים, מבני נתונים למימוש תהליכים
מבני נתונים ADT, O() notation, Recursions תשס"ח סמסטר ב' תרגול 1
ניתוח זמן ריצה (על קצה המזלג)
הרצאה 21: Queue, Iterator & Iterable
בניית מחסנית סטטית Static Stack Implementation מורים מובילים תשע"ה
תרגול 8 תחומי הכרה פונקציות
Shell Scripts בסביבת UNIX
עקרונות בסיסיים בתכנות Visual Basic
מחסנית ותור Stacks and Queues.
שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב
מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות.
Presentation transcript:

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

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

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

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

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

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

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

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

תור - 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

תור - 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

תור - 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

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

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

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

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

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

פתרון (המשך) 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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