הרצאה 12: מיזוג, מיון ושימושים לפעולות על קבוצות - המשך

Slides:



Advertisements
מצגות קשורות
הערכות מילוליות קורס מנב"ס בתוכניות להכשרת מנהלים ומורים במוסדות להשכלה גבוהה, תשס"ה. © כל הזכויות שמורות למשרד החינוך התרבות והספורט.
Advertisements

הרצאה בכנס מוח "המורה אני רוצה להצליח במבחן, אבל אני לא מספיק להעתיק מהלוח, אולי את מוכנה..." דינה סלע, מטח אורנה רוזנבלט,
ניהול מערכות משרדיות.
המינהל הפדגוגי אגף בכיר בחינות
תחקור והערכת מערכת .
SQL: שינוי מסד הנתונים- פעולותDDL , DML
הרצאה 02 סוגי משתנים קרן כליף.
קורס ניהול ידע מפגש 3 - פורטלים 2know.kmrom.com.
ריבועי קסם סוגים שונים של ריבועי קסם ומה מסתתר בהם
השתלמות מורים לפיזיקה בראשית דרכם יום רביעי 03 דצמבר 2008
ייצוגים שונים של פונקציה
יצירת מקרו הפעלת מקרו יצירת לחצן / פקד דוגמה מסכמת
מבוא לתכנות ב-JAVA מעבדה 1
Trends in Periodic Table Properties
תרגול 11: רקורסיה ופיתוח טלסקופי
בניית תוכנית בית ספרית שנתית
Isotopes and Atomic Mass
Marina Kogan Sadetsky –
אלקטרושליליות ופולריות הקשר
מטרת פרויקט "שיעורים פרטיים ברשת"
Jump tables, review questions
מודל דחיית זוגות אלקטרונים של קליפת הערכיות
מבוא למדעי המחשב הרצאה מספר 12: רקורסיה
תכנות בשפת C תרגול 11 רשימות מקושרות מבנים
תרגול Introduction to C - Fall Amir Menczel.
Computer Programming תרגול 1 Summer 2016
תירגול 11: מיונים וחיפוש בינארי
תרכובות עם יונים פוליאטומים בחיי היום יום
נערך ע"י אריק הוד הגימנסיה העברית הרצליה
יסודות מבני נתונים תרגול 13: עץ פורש מינימלי - Minimum Spanning Tree (MST)

Entity Relationship Diagram – ERD
שם ביה"ס, רשות: מקיף ה' אשדוד שם המורה: פולינה צ'יגרינסקי שם המדריכה:
Engineering Programming A
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
תרגול 6: פונקציות, סוגי משתנים, top-down design
S. Even, "Graph Algorithms", Computer Science Press, 1979
ברוכים הבאים למחלקה לפסיכולוגיה.
שימור תנע בהתנגשויות קובץ זה נועד אך ורק לשימושם האישי של מורי הפיזיקה ולהוראה בכיתותיהם. אין לעשות שימוש כלשהו בקובץ זה לכל מטרה אחרת ובכלל זה שימוש מסחרי;
© האוניברסיטה העברית בירושלים, 2008
Direction of induced current
שם הגננת: עדנה סרי The teacher: Edna Seri
הרצאה 10: אלגוריתמי מיון רקורסיביים Merge sort ו-Quick sort
Computer Architecture and System Programming Laboratory
תיעוד מפעילויות ראש השנה בגן "פרפר נחמד" –עכו-תש"ע
אלגוריתמי מיון רקורסיביים
תרגול 13 : חזרה נכתב על-ידי לימור ליבוביץ נערך ע"י ישראל גוטר
Elements and Symbols יסודות וסמלים מהם יסודות? gold carbon aluminum
Marina Kogan Sadetsky –
ברוך הבא למערכת גמל אינפו
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
What is Chemistry? מהי כימיה? Chemistry is the study of matter and its
מבוא לתכנות ב- JAVA מעבדה 4
מבחני איתור לנבחרת ישראל הצעירה (מדעים ומתמטיקה) לתלמידי כיתות ז'
סיעות במערכת החינוך.
מבוא לתכנות בWINDOWS ד"ר אבי רוזנפלד.
מבוא למדעי המחשב סמסטר ב' – 2008 מרצה: יעל סיגל מתרגל: ענבל בודובסקי.
Ci,j=Σκ Ai,κxBκ,j מכפלת מטריצות מכפלת מטריצות ב- O(n3)
מצביעים Pointers – המשך...
מערכת משוואות מיוחדות.
תרגול מס' 7: Memoization Quicksort תרגילים מתקדמים ברקורסיה
ברוכים הבאים למת"ם מבוא לתכנות מערכות הוכן ע"י שרי דואק
מערכת הערעורים מסכי סטודנטים.
פרוייקט שנתי בהנדסת תוכנה חלק ב
והתאמתה למאפייני הסטודנטים
Pre-Medical Studies לימודי קדם רפואה B.Sc..
Engineering Programming A
תכנית הלימודים לסטודנטים שנה ג' לשנת תש"פ
כנס איגוד סחר רכב בישראל איגוד לשכות המסחר עו"ד שוש רבינוביץ
תמליל מצגת:

הרצאה 12: מיזוג, מיון ושימושים לפעולות על קבוצות - המשך קורס מחשב לרפואנים 274121 הרצאה 12: מיזוג, מיון ושימושים לפעולות על קבוצות - המשך נכתב על-ידי ראובן בר-יהודה.

סיבוכיות מיזוג ?קבוע n_a + n_b פעמים  קבוע! function c = merge(a,b) % time complexity % is O(length(a)+length(b)) n_a = length(a); n_b = length(b); n_c = n_a + n_b; c = zeros(1,n_c); i_a = 1; i_b = 1; for i_c = 1 : n_c; if i_b > n_b c(i_c) = a(i_a); i_a = i_a +1; elseif i_a > n_a c(i_c) = b(i_b); i_b = i_b +1; elseif a(i_a) < b(i_b) else % a(i_a) >= b(i_b) end סיבוכיות מיזוג ?קבוע n_a + n_b פעמים  קבוע!

מיון מיזוג function b = msort(a) if length(a)<2 b = a; return end m = ceil(length(a)/2); b = merge(msort(a(1:m)), msort(a(m+1:end)));

מיון – פונקצית ספריה sort Examples Sort horizontal vector A: A = [78 23 10 100 45 5 6]; sort(A) ans = 5 6 10 23 45 78 100 Sort matrix A in each dimension: A = [ 3 7 5 0 4 2 ]; sort(A,1) ans = 0 4 2 3 7 5 sort(A,2) 3 5 7 0 2 4 Syntax B = sort(A) B = sort(A,dim) B = sort(...,mode) [B,IX] = sort(A,...)

מיון – פונקצית ספריה sortשימוש באינדקסים >> id = [123456 21234567 1234560 1234569]; >> grade = [20 100 80 55]; >> [sorted index] = sort(grade, 'descend'); >> id(index) ans = 21234567 1234560 1234569 123456 >> [sorted index] = sort(id); >> [id(index); grade(index)]' 123456 20 1234560 80 1234569 55 21234567 100 מיון מספרי זהות לפי סדר יורד של ציונים מיון הכל לפי סדר עולה של מספרי זהות

מיון – פונקצית ספריה sort על מטריצות >> table = [ 123456 20 21234567 100 1234560 80 1234569 55]; >> sort(table) ans = 123456 20 1234560 55 1234569 80 21234567 100

מיון – פונקצית ספריה sort שימוש באינדקסים >> table = [ 123456 20 21234567 100 1234560 80 1234569 55]; >> [sorted index]=sort(table(:,1)) >> table(index, :) ans = 123456 20 1234560 80 1234569 55 21234567 100 מיון הכל לפי סדר עולה של מספרי זהות

מיון – פונקצית ספריה sort- סיבוכיות סיבוכיות הזמן O(nlog(n)) ומעשית, אין טעם להתחרות בו

מימוש פעולות על קבוצות בעזרת מערכים מימוש פעולות על קבוצות בעזרת מערכים המערךA = [75 1 2 1 75 2] לא מייצג קבוצה. בקבוצה, אין חזרות ואין משמעות לסדר. הפעלת פונקצית ספריה unique(A) תחזיר [1 2 75]. נתעניין במימושים יעילים בפעולות בין קבוצות A ו B כמו intersect(A, B) = A  B union(A, B) = A  B

הפונקציה unique Syntax b = unique(A) b = unique(A, 'rows') [b, m, n] = unique(...) [b, m, n] = unique(..., occurrence) Description b = unique(A) returns the same values as in A but with no repetitions… The resulting vector is sorted in ascending order. Example >> a = [1 1 5 6 2 3 3 9 8 6 2 4]; >> unique(a) ans = 1 2 3 4 5 6 8 9

הפונקציה unique function b = my_unique(a) %B = UNIQUE(A) for the array A returns the same values %as in A but with no repetitions. B will also be sorted. b = sort(a) ; if isempty(a) return end last = 1; for next = 2:length(a) if b(next)>b(last) last = last + 1; b(last) = b(next); b = b(1:last);

חיתוך intersect(A, B) = A  B

חיתוך: מימוש לא יעיל (ריבועי) function c = my_slow_intersect(a,b) % given arrays a,b representing sets % return in c the intersection of a and b n_a = length(a); n_b = length(b); n_c = min (n_a , n_b); c = zeros(n_c); i_c = 1; for i_a = 1:n_a for i_b = 1:n_b if a(i_a) == b(i_b) c(i_c) = b(i_b); i_c = i_c + 1; end c = c(1:i_c-1);

חיתוך: מימוש בזמן לינארי function c = my_intersect(a,b) % given arrays a,b representing sets % return in c the sorted intersection of a and b % assume a = unique(a); b = unique(b); n_a = length(a); n_b = length(b); n_c = min (n_a , n_b); c = zeros(n_c); i_a = 1; i_b = 1; i_c = 1; while i_b <= n_b && i_a <= n_a if a(i_a) < b(i_b) i_a = i_a + 1; elseif a(i_a) > b(i_b) i_b = i_b + 1; else c(i_c) = b(i_b); i_c = i_c + 1; end c = c(1:i_c-1);

חיתוך: פונקצית ספריה intersect intersect Find set intersection of two vectors Syntax c = intersect(A, B) c = intersect(A, B, 'rows') [c, ia, ib] = intersect(a, b) Description c = intersect(A, B) returns the values common to both A and B. In set theoretic terms, this is A ∩ B. Inputs A and B can be numeric or character vectors or cell arrays of strings. The resulting vector is sorted in ascending order.

איחוד union(A, B) = A  B

איחוד בזמן לינארי function c = my_union(a,b) % assume a = unique(a); b = unique(b); n_a = length(a); n_b = length(b); n_c = n_a + n_b; c = zeros(1,n_c); i_a = 1; i_b = 1; i_c = 1; while i_a <= n_a || i_b <= n_b if i_b > n_b c(i_c)= a(i_a); i_a= i_a+1; elseif i_a > n_a c(i_c)= b(i_b); i_b= i_b+1; elseif a(i_a) < b(i_b) elseif a(i_a) > b(i_b) else c(i_c)= b(i_b); i_a= i_a+1; i_b= i_b+1; end i_c= i_c+ 1; c = c(1:i_c-1);

איחוד: פונקצית ספריה union union Find set union of two vectors Syntax c = union(A, B) c = union(A, B, 'rows') [c, ia, ib] = union(...) Description c = union(A, B) returns the combined values from A and B but with no repetitions. In set theoretic terms, c = A ∪ B. Inputs A and B can be numeric or character vectors or cell arrays of strings. The resulting vector is sorted in ascending order.

מבחן מועד א' יום ב' 16/7 (מועד ב' 10/10 ) מבחן מועד א' יום ב' 16/7 (מועד ב' 10/10 )

מבחן מועד א', יום ב' 16/7 (מועד ב' 10/10 ) מבחן מועד א', יום ב' 16/7 (מועד ב' 10/10 ) שעות : 13:00-15:30 (עד שלא מופיע ב-UG זה לא בטוח) חדרים: טאוב, 5+6+7+8 -כל אחד יקבל שיבוץ אישי. סיימנו את חומר ההרצאות. הפגישות הבאות מתוכננות למענה על שאלות לפני מבחן. יום לפני מועד א: טאוב 2 יום א 15/7 בשעות 11:00 ועד 13:00 (או יותר במידת הצורך) יום לפני מועד ב: טאוב 2 יום ג 9/10 בשעות 11:00 ועד 13:00 (או יותר במידת הצורך)

מבחן, דף ראשון: (לא סופי)

מבחן, מתוך דף שני: (לא סופי)  משך המבחן: 2.5 שעות (150 דקות). לא תינתן תוספת זמן. חומר עזר: דף עזר בגודל A4 שהוכן מראש לפי ההנחיות. (אין להשתמש בכל חומר עזר אלקטרוני כולל מחשבים/מחשבונים למיניהם)  הנחיות והוראות: • יש למלא באופן ברור את תעודת הזהות הן בכתב והן במשבצות (בדף הקודם). מלבד מספר הזהות, אין להשאיר שמות או כל סימן מזהה אחר. • במבחן זה ? שאלות (בעמודים ?-2). נא לוודא! • אם לא צוין אחרת, ניקוד תתי-הסעיפים של השאלות מחולק באופן אחיד. • גם אם לא פתרתם סעיף מסוים בשאלה תוכלו לפתור סעיפים מאוחרים יותר המשתמשים בסעיף זה. • אם אינכם יודעים תשובה לסעיף מסוים, תוכלו לכתוב "לא יודע/ת" ולקבל 20% מהניקוד לאותו סעיף. שימו לב שניתן לכתוב "לא יודע/ת" רק על סעיף שלם ולא על חלק מסעיף. • בשאלות בהן יש לכתוב פונקציות ניתן להניח שהקלט לפונקציות חוקי. • בעמוד האחרון (עמ' ? ) בבחינה מופיעה רשימת פונקציות ספרייה של מטלאב בהן מותר לכם להשתמש אם לא נאמר אחרת. אין להשתמש בפונקציות ספרייה שאינן ברשימה הזו. • נא לא לנמק אם לא התבקש במפורש. • נא לענות בגוף השאלון במקומות המיועדים לכך בכתב יד ברור, ולחרוג כמה שפחות מהשטח שסומן לתשובה. חריגות הכרחיות מהשטח שסומן יש לכתוב בעמודים הריקים בגוף הבחינה. על קטעים שאינכם רוצים שיקראו על ידי הבודקים. העבירו X • ניתן להשתמש בדפי טיוטה נוספים, שלא ייאספו ולא ייקראו על ידי הבודקים.

מבחן: ש.ת. ש: על מה ניבחן? ת: כל מה שראיתם בהרצאות/תרגולים ועבודות בית מלבד: הוכחות של נכונות תוכניות ניתוח סיבוכיות והוכחות קשורות (כן תתבקשו לעמוד בדרישות סיבוכיות) מערכים מעל ל-2 מימדים

מבחן: ש.ת. ש: איזה חומר עזר מותר? ת: דף A4 2 צדדים בלבד! ש. מהו נוהל ערעורים? ת. אחרי פרסום סריקות המבחנים יינתן מידע. ש: אני מתקשה בקריאה/כתיבה/הבנה, האם אוכל לקבל הארכת זמן? ת: מקבלים הארכת זמן רק סטודנטים בעלי קשיי למידה או בגלל שרות מילואים ממושך שברשותם מכתב חתום ע"י דיקן לימודי הסמכה.

מבחן: ש.ת. ש: אפשר לקבל מועדי ג'? ת: אין מועד ג', יש מועד מילואים והוא נועד למילואימניקים בלבד. במקרה של מילואים יש לשלוח בהקדם אישור שמ"פ למרצה. ש: ומה אם יש התנגשות עם בחינה אחרת? חתונה? תאונה? אשפוז? נסיעה דחופה לחו"ל? ת: כל המקרים הנ"ל מוגדרים כמניעות חמורות, ובגללן מלכתחילה הומצא מועד ב'. ש: הגעתי למבחן ומייד בהתחלה הבנתי שהיא לא בשבילי, אפשר לוותר. ת: אם קיבלת את המבחן אז יש לך ציון. ש: או.קי. אז בעצם דקה אחרי תחילת המבחן חשתי ברע. ת. התשובה כמו קודם: אם קיבלת את המבחן אז יש לך ציון.

תודה ובהצלחה במבחנים. ראובן.