מבני נתונים ADT, O() notation, Recursions תשס"ח סמסטר ב' תרגול 1

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

תרגול 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.
מבוא למדעי המחשב לתעשייה וניהול
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
קורס אלגוריתמים ספר הקורס: מרצה: נעם ניסן מתרגלים:
1 Formal Specifications for Complex Systems (236368) Tutorial #2 Z notation; Examples.
1 Abstract Data Types Stack, Queue Amortized analysis Cormen: Ch 10, 17 (11, 18)
מבני נתונים 1 – מבנה התרגולים
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
Inverse kinematics (Craig ch.4) ב"ה. Pieper’s solution נתבונן ברובוט עם 6 מפרקי סיבוב כאשר שלושת הצירים של המפרקים האחרונים נחתכים. נקודת החיתוך נתונה.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
1 מבוא למדעי המחשב תרגול מספר 11 2 הנושאים להיום סיבוכיות זמן ומקום של אלגוריתמים. למה צריך ללמוד את זה? 100% יופיע במבחן מדד ליעילות של אלגוריתמים.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מרצה: פרופסור דורון פלד
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
מבני בקרה מבוא לתכנות למנע " ס - שבוע מספר 3 - מאיר קומר - סמסטר ב ' - תשס " ו הסתעפות “ אם השמאל ואימנה ואם הימין ואשמאילה ”
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
תכנות תרגול 2 שבוע : צור קשר מתרגל – שי גוטנר, ביה " ס למדעי המחשב. מתרגל – שי גוטנר, ביה " ס למדעי המחשב. דואר אלקטרוני : דואר.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
1 מפרטים פורמאליים תרגול מספר 1 מהות הקורס:כח ביטוי. בעיות מעשיות (ולא הוכחות) מתרגל אחראי:שחר דג מתרגלת:אמיליה כץ אתר:
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
Stacks and Queues. Stack ADT סוג של מערך מוגבל מהר מאוד ולוקחים מעט זכרון שימוש ב LIFO – LIFO (Last In, First Out) lists. –אפשר להוסיף רק בסוף הרשימה.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
מבנה מחשבים תרגול מספר 3. טענה על עצים משפט: בעץ שדרגת כל קודקודיו חסומה ב-3, מספר העלים ≤ מספר הקודקודים הפנימיים + 2. הוכחה: באינדוקציה על n, מספר הקודקודים.
מבוא לעיבוד מקבילי הרצאה מס ' 9 17/12/2001. נושא ההרצאה עיבוד תמונה מקבילי Parallel Image Processing.
תרגול 4 21/3/2007 מבני נתונים 07b ליאור שפירא. תזכורת – B-trees  לכל צומת x יש השדות הבאים n[x] מס ' מפתחות ב -x המפתחות עצמם בסדר לא יורד כל צומת פנימי.
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
תוכנה 1 תרגול מס ' 3 מערכים ומבני בקרה. 2 מערכים Array: A fixed-length data structure for storing multiple values of the same type Example: An array of.
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
 Client, Supplier ומה שביניהם ( ADT!).  שאלה 1: יצירת ADT עבור מעגל במישור נניח שלקוח מעוניין בפעולות הבאות : הזזת מעגל וחישוב שטח מעגל. הספק יספק ללקוח.
מחסנית ותור Stacks and Queues. מחסנית Stack מחסנית - Stack ADT סוג של מערך מוגבל מהיר מאוד ותופס מעט זיכרון שימוש ב LIFO – LIFO (Last In, First Out)
Costs and Filters Dr. Avi Rosenfeld Department of Industrial Engineering Jerusalem College of Technology
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Formal Specifications for Complex Systems (236368) Tutorial #1
ערמות 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.
מבוא למדעי המחשב סיבוכיות.
מבנה נתונים ואלגוריתמים
SQL בסיסי – הגדרה אינדוקטיבית
תירגול 14: מבני נתונים דינאמיים
חיפוש לוקלי Local Search.
מבוא למדעי המחשב הרצאה 1: מבוא כללי מי אני, שעות הקבלה:
משימת חקר מכוון ללמידה משמעותית
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
מחסנית ותור Stacks and Queues.
NG Interpolation: Divided Differences
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

מבני נתונים ADT, O() notation, Recursions תשס"ח סמסטר ב' תרגול 1 מתרגל: דן פלדמן 1

פרטים טכניים מתרגל: דן פלדמן שעת קבלה: מתי שרוצים, נא לתאם באי-מייל שעת קבלה: מתי שרוצים, נא לתאם באי-מייל לאתר הקורס ניתן להגיע דרך: http://www.cs.tau.ac.il/~dannyf/ או לרשום Danny Feldman ב-Google 2

ADT is an interface It defines the type of the data stored operations, what each operation does (not how) parameters of each operation

שיעורי בית תרגילים תיאורטיים לא לשלוח מייל לגבי הגשה באיחור פרוייקטים יינתנו כל שבוע/שבועיים חובת הגשה: 100% הגשה: ישירות לתא הבודק שיפורסם באתר. החזרה: חדר צילומים (קומה 1, שרייבר) איחורים: להגיש בהקדם ולצרף פתק עם סיפור ואישורים אם יש. לא לשלוח מייל לגבי הגשה באיחור עדכונים ברשימ התפוצה של הקורס. בידקו שאתם מקבלים דואר! פרוייקטים יינתנו 1-2 פרוייקטים במהלך הסמסטר הפרוייקטים ייעשו ביחידים 4

ADT Application ממשק Implementation of the Data structure חוזה בין מתכנת האפליקציה ומיישם מבנה הנתונים ממשק Implementation of the Data structure

פסאודו-קוד בקורס זה נכתוב אלגוריתמים ב-psuedo-code זהו תיאור קומפקטי ולא רשמי של אלגוריתם במדעי המחשב נשמיט פרטים טכניים ולא חשובים ונשמור על העיקר i  5 while i>0 do i  i-1 end while Assign the value 5 to i Begin a loop, condition is i>0 Decrease value of i by 1 End the loop 6

Example: Stacks Push(x,S) : Insert element x into S Pop(S) : Delete the last element inserted into S Empty?(S): Return yes if S is empty Top(S): Return the last element inserted into S Size(S) Make-stack()

Implementation We will be interested in algorithms to implement the ADT.. And their efficiency..

Big-O - קיים c ו- כך ש: דוגמא:

Big-O cg(n) f(n) n0

More examples 4n O(n2) 4n2 O(n2) 2n O(n10) 10 O(1) 100n3+10n O(n3) log2(n) O(log10(n))

תרגיל בהינתן n מספרים שלמים בטווח 1..nc כיצד ניתן למיין בזמן O(n∙c) פתרון נתחיל ממספרים בטווח 1..n2 האם ניתן למיין אותם בO(n)? אילו אלגוריתמים אנו מכירים שממיינים בזמן לינארי? Counting sort – בהנתן n מספרים בטווח 0..k נכתוב כל מספר בבסיס n, כמה ספרות? נמיין כמו radix sort, O(n) לכל ספרה ולכן 2O(n)=O(n) עבור הבעיה המקורית כמה ספרות יהיו לנו? 12

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

תרגיל 1 8 פתרו את הרקורסיה הבאה: פתרון 1: Brute Force אפשר גם לעשות ממש פשוט – T(n) = 2T(n/2)+bn בעץ רקורסיה וכו' 8 14

תרגיל 1 מה עשינו לא נכון? אי אפשר להמשיך עד אינסוף, צריך לעצור ב-T(1) או קבוע אחר באיזה k נעצור? זהו עומק הרקורסיה (ההתפצלות מדרגה 7) ונחזור לביטוי... Log7n=log7(9)log9(n)9^(log7(9)log9(n))=n^(log7(9)) 15

רקורסיה – Master Theorem "מתכון" לפתור רקורסיות מסוג מסוים עבור נוסחת רקורסיה כך ש קיימים שלושה מקרים האם צריך להוכיח את זה? אולי להוסיף דוגמאות 16

חזרה לתרגיל 1 a=9;b=7;f(n)=n האם אנחנו במקרה הראשון? 17

דוגמה נוספת מסקנה: זהו מקרה 2 18

תרגיל 3 פתרו את הרקורסיה הבאה: פתרון בואו ננסה לפתוח את זה קצת... נמצא חסם משני הצדדים כאן רק השגנו חסם תחתון לא?! 19

תרגיל 3 חסם תחתון בואו נשמור רק את חצי האברים הגדולים ביותר מיהו האבר הקטן ביותר ששמרנו? לכן אם נחליף את n/k בשורש n נקבל... 20

תרגיל 3 חסם עליון נחליף כל n/k ב-n ונקבל 21

הסוף שבוע נעים 22