מבני נתונים 08 מיון.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
מציאת צורה של מבני Tensegrity
Advertisements

מעבר מביטוי רגולרי ל – NFA (גזור ושמור) משפט: לכל ביטוי רגולרי r קיים אוטומט סופי A כך ש – L(A)=L(R). לכל אוטומט סופי A קיים ביטוי רגולרי r כך ש – L(A)=L(R).
תחשיב הפסוקים חלק ו'.
72120 – ביוכימיה של התא תרגיל מס' 3: קינטיקה אנזימתית.
שיעור 6 האטמוספירה בתנועה.
מגוון גנטי.
ניתוח תחבירי (Parsing) - המשך
Atom Interferomtry סוגי אינטרפרומטרים סוגי אינטרפרומטרים מודל של Double Y Interferometer מודל של Double Y Interferometer סיבוב של האינטרפרומטר סיבוב של.
שדות מגנטיים של זרמים משלוח ספינות חלל מכדור הארץ לחלל נעשה ע"י רקטות. אבל כאשר נתחיל לייבא מינרלים מהחלל לארץ, לא יהיה לרשותנו דלק לשליחת ספינות חלל.
שערוך תאורה מתוך צל Group meeting
תורת התורים תיאור חלקי עולם כרשתות של תורים לצורך: יישומים: הבנה
בדיקת תכונות של גרפים במודל מטריצת השכנויות ענב וינרב ינון חביב.
הרצאה 11: סמנטיקה ומשפט השלמות. אינטרפרטציה אינטרפטציה M מורכבת מ- 1. קבוצה D≠ ,D - תחום האינטרפטציה. 2. פרושים של פרדיקטים, פונקציות וקבועים ב- D, כלומר,
סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית הרצאה מס 3 ינון רפופורט חלק 1 משפט בנית הנושא.
בשעור הקודם הגדרנו את מושג השטף החשמלי השטף החשמלי דרך משטח A הוא כמות קווי השדה שעוברת דרך המשטח.
מבוא לסימולציות: מערכות בקרה
תורות עם שוויון. תהי Гתורה מעל שפה שמכילה יחס בינרי =. אנו נכתוב s  t במקום ~s = t. Г נקראת תורה עם שוויון אם הנוסחאות הבאות הן משפטים של Г: A6. הרפלקסיביות.
התנהגות הרוח במערכות סינופטיות
פוטנציאל חשמלי בטיול בפרק הלאומי של הסיקוויה מישהו נוכח ששערות בת הלוויה שלו סומרות. הוא צילם אותה. חמש דקות אחר כך פגע ברק במקום הזה הרג מבקר ופצע שבעה.
משוואות מקסוול וגלים אלקטרומגנטיים
אופציות מה נלמד? מושגים בסיסיים באופציות אסטרטגיות השקעה בסיסיות
ניתוח תחבירי (Parsing) של דקדוקי LR(1)
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Ορισμοί Ιεραρχικός Μη γραμμικός τύπος δεδομένων Γονέας – Παιδιά
מימון ד"ר זיו רייך , רו"ח.
מוטציות התא – מבנה ותפקוד המוטציות, השפעותיהן והגורמים להן
Confidence intervals based on bootstrap “tables”
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
מבני נתונים ויעילות אלגוריתמים
גודל פיזיקאלי סקלרי אינו תלוי בכיוון
בס"ד אינטגרלים משולשים (והחוט המשולש לא במהרה יינתק)
מבני נתונים ויעילות אלגוריתמים
תקשורת אלקטרו-אופטית מרצה: רועי עמרם.
בהנחיית פרופ' עוזי אורנן
ניהול הייצור למערכות מידע – ניהול האיכות, תרשימי בקרה
שירטוט מערכות אופטיות בסיסיות
ניהול הייצור למערכות מידע תרגול – ניהול פרוייקטים
מרתון בכימיה - פרויקט נחשון יום א
שעור 4 השלמות בתרשימי בקרה תרשימי C תרשימי U עקרונות הדגימה: מושגים
גישת תיק השקעות גיוון.
מדיניות תעסוקה בישראל ערביי ישראל פורום ספיר 4 נובמבר 2010
היבט כולל על הדואליות בין קינמטיקה וסטטיקה
בדיקת מונוטוניות של פונקציות בוליאניות
בקרה במכונות מושגי יסוד תרשים מלבנים חוג פתוח/סגור משתנה מבוקר/מבקר
בקרת ביטוי גנים בפרוקריוטיים
הרצאה 7 מבוא לסטטיסטיקה התפלגות נורמלית
גלגול, פיתול ותנע זוויתי
אולימפיאדה צעירה ע"ש אילן רמון שלב ג' 2013
10. תכנות לוגי ב-Datalog שקפים: אלדר פישר
ליאור שפירא, חיים קפלן וחברים
גלים אלקטרומגנטיים.
תורת התורים תיאור חלקי עולם כרשתות של תורים לצורך: יישומים: הבנה
אורך, היקף, שטח ונפח.
השוואה בין מחלקות.
נושא 4: זרם חילופין.
ספקטרוסקופיה ואפקט החממה
תורת הגרפים.
מתוך "טעם של כימיה" מזון למחשבה שומנים ושמנים
סימולציה- קוטביות מולקולות סימולציה- צורות מולקולה
מבני נתונים ויעילות אלגוריתמים
מבני נתונים ויעילות אלגוריתמים
זרם חילופין AC.
גלאי FM באפנון FM משתנה תדר הגל הנושא ע"י המשרעת של אות המידע, בעוד שהמשרעת של הגל הנושא נשארת קבועה. גלאי FM צריך לזהות את שינויי התדר ולהפוך אותם לשינויי.
בניית רובוט במבנה משולש הנשלט ע"י מחשב כף יד
מטוס נוסעים A380.
אלגוריתם סנכרון למערכות OFDMA
סדרה סופית של תשלומים קבועים :
72120 – ביוכימיה של התא מנגנוני קטליזה אנזימתית - כימוטריפסין
שומנים ושמנים.
Δομές Δεδομένων (Data Structures)
Μεταγράφημα παρουσίασης:

מבני נתונים 08 מיון

מיון CountSort מיון n מספרים שונים בתחום 1-k נשתמש במערך בוליני A באורך k 1 1 3 , 5 , 7 , 1 , 9 , 6 2 3 1 4 1 3 5 6 7 9 5 1 אפס את A. לכל x בקלט בצע:A[x] = 1 עבור על המערך ואסוף:for (i = 1; i < k ; i++) { if (A[i] = = 1 ) output i ; } 6 1 7 1 8 9 1

סיבוכיות מיון CountSort מיון n מספרים שונים בתחום 1-k אפס את A. לכל x בקלט בצע:A[x] = 1 עבור על המערך ואסוף:for (i = 1; i < k ; i++) { if (A[i] = = 1 ) output i ; } סבוכיות זמן אם סבוכיות זמן סתירה לחסם התחתון!

מיון CountSort מיון n מספרים שאינם בהכרח שונים בתחום 1-k 3 , 5 , 3 , 1 , 9 , 5 , 3 1 11 31 , 51 , 32 , 11 , 91 , 52 , 33 2 מיון יציב Stable sort 3 31 32 33 4 11, 31 , 32 , 33 , 51 , 52, 91 5 51 52 6 7 נשתמש במערך A באורך k של תורים 8 9 91 סבוכיות זמן

מיון CountSort סבוכיות זמן אם סבוכיות זמן אם סבוכיות זמן שיטת CountSort אינה יעילה כאשר n המספרים לקוחים מתחום "רחב מדי" 1..k, כלומר כאשר n << k

מיון RadixSort Least Significant Digits 321 321 321 1 111 123 123 231 1 123 231 231 111 1 132 132 132 132 2 213 213 213 312 2 213 312 312 332 3 223 111 111 123 2 231 223 223 213 3 312 332 332 223 3 321 213 213 213 4 331

מיון RadixSort Radix-Sort(A,d) for i  1 to d do use BucketSort to sort array A on digit i RadixSort מיון מספרים סבוכיות זמן אם בסיס RadixSort ממין מספרים

מיון countSort מיון RadixSort דוגמה סבוכיות זמן אם תחום המספרים בסיס סבוכיות זמן

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

חסמים עליונים ותחתונים חסם עליון: הוכחה לזמן ריצה מקסימלי עבור כל קלט. למשל: נוסחאות נסיגה, פונקציית פוטנציאל חסם תחתון: קלט לדוגמא עבורו האלגוריתם לוקח הרבה זמן. נניח שהוכחנו שאלגוריתם מסויים פותר את הבעיה לכל קלט בזמן O(t) אזי O(t) הוא חסם עליון לזמן הנדרש לפתור את הבעיה WC 10

איך נמצא חסם הדוק לבעיה? קיים אלגוריתם שפותר את הבעיה לכל קלט בגודל n, נניח הוכחנו שעבור בעיה מסוימת קיים אלגוריתם שפותר את הבעיה לכל קלט בגודל n, בזמן O(logn). כדי למצוא חסם תחתון לבעיה יש להוכיח ש: לכל אלגוריתם שפותר את הבעיה קיים קלט שעבורו זמן הריצה הוא Ω(logn). זה לא אומר שאין אלגוריתם שפותר את הבעיה בזמן O(1) עבור קלטים מסוימים! 11

חסמי זמן ריצה לבעיה חסם עליון O(t): אלגוריתם לדוגמא שפותר את הבעיה לכל קלט בזמן O(t) חסם תחתון Ω(t): מיפוי כל אלגוריתם לעץ החלטות בגובה Ω(t) רדוקציה לבעיה שהוכחנו בכיתה עם חסם תחתון על זמן הריצה (מיון או חיפוש בינארי במודל ההשוואות). זמן קריאת הקלט. למשל: כל אלגוריתם לבעיית מציאת המינימום מ-n מספרים חייב לעבור על כל הקלט ולכן לוקח זמן Ω(n)

חסם תחתון על מיון על ידי השוואות אם אלגוריתם המיון שלנו מתבצע רק ע"י השוואות, כמה סידורים אפשריים יש ל-n אברים? יש n! סידורים אפשריים For <a,b,c> a,b,c a,c,b b,a,c b,c,a c,a,b c,b,a n! 13

חסם תחתון על מיון על ידי השוואות ניתן לייצג כל אלגוריתם מיון (השוואתי) על ידי עץ החלטות בינארי למה ניתן לייצג כעץ? למה דווקא כעץ בינארי? בעץ עצמו כל צומת מייצגת את הסידור החלקי כפי שידוע לנו עד נקודה זו קשתות העץ הן תוצאות ההשוואות 14

חסם תחתון על מיון על ידי השוואות 1:2 2:3 <1,2,3> 1:3 <1,3,2> <3,1,2> <2,1,3> <2,3,1> <3,2,1> > > > > > 15

חסם תחתון על מיון על ידי השוואות מס' ההשוואות המקסימאלי = עומק העלה העמוק ביותר בעץ מס' ההשוואות הממוצע = עומק עלה ממוצע עץ החלטה למיין n אברים הוא בעל n! עלים בהכרח עץ בינארי מעומק d הוא בעל 2d עלים לכל היותר עץ בינארי בעל 2dעלים חייב להיות בעל עומק d עץ בעל n! עלים חייב להיות מעומק של לפחות |log(n!)| ולכן כל אלגוריתם מיון מבוסס השוואות דורש לפחות |log(n!)| השוואות במקרה הגרוע ביותר. 16

חסם תחתון על מיון על ידי השוואות 17

חסם תחתון על חיפוש מה החסם התחתון על חיפוש במערך ממוין? במקרה הגרוע ביותר נשווה לכל איבר ז"א בעץ יש n עלים מה העומק המינימלי של עץ בינארי בעל n עלים? זמן לוגריתמי O(logn) 18

תרגיל 2 כמה "יקר" להפוך ערמה לעץ חיפוש בינארי? נראה שהחסם התחתון הוא nlogn נפתור ברדוקציה על דרך השלילה נניח שניתן להפוך ערמה לעץ חיפוש בינארי ב-f(n) בהינתן n מספרים, מיינו את המספרים (במודל ההשוואה) נבנה ערמה בזמן לינארי (O(n)) נמיר את הערמה לעץ בינארי מאוזן בזמן f(n) נעבור על העלים ב-in order ונדפיס אותם (ממוינים) בזמן לינארי סה"כ זמן – O(n) + f(n) + O(n) לכן, אם f(n)<<n∙log(n) ניתן למיין n מספרים בזמן קטן מ-O(n∙logn) ואנו יודעים שזה בלתי אפשרי. מ.ש.ל 19

תרגיל 3 הוכיחו כי לא יכול להיות אלגוריתם במודל ההשוואות בו עבור קלט באורך n, לפחות חצי מהפרמוטציות האפשריות של המספרים מ-1 עד n ניתנות למיון בזמן ליניארי. (עבור המחצית השניה של הפרמוטציות, לאלגוריתם מותר להחזיר כל דבר, אפילו סדר שגוי). 20

תרגיל 3 הוכיחו כי לא יכול להיות אלגוריתם במודל ההשוואות בו עבור קלט באורך n, לפחות חצי מהפרמוטציות האפשריות של המספרים מ-1 עד n ניתנות למיון בזמן ליניארי. (עבור המחצית השניה של הפרמוטציות, לאלגוריתם מותר להחזיר כל דבר, אפילו סדר שגוי). פתרון במודל ההשוואות, אם ניתן לסדר חצי מהפרמוטציות (n!/2) אזי יש לפחות כמספר הזה עלים לכן גובה העץ הוא Ω(nlogn) ולא יכול להיות אלגוריתם לינארי 21

תרגיל 4 חשב k האברים הקטנים (גדולים) ביותר במערך בגודל n בזמן O(nlogk), האם ניתן בזמן טוב יותר? 1 2 3 4 5 6 7 8 .... x אם יש יותר מ-k max-heap תוצאה סופית: כל מה שנשאר ב-heap 22

Selection 23

תרגיל 2 בהינתן מערך (לא ממוין) בעל n אברים, מצא את k האברים הקטנים ביותר במערך בזמן O(n) פתרון בהנחה שאנו יודעים מיהו האבר ה-k הקטן ביותר (ז"א statistic order k), כמה זמן דרוש למצוא את שאר האברים הדרושים? סה"כ O(n) למצוא את האבר הk קטן ביותר O(n) לעבור על המערך ולסמן את כל הקטנים ממנו 24

תרגיל 3 אבר מסוים מופיע במערך n/5 פעמים, באיזו מהירות ניתן למצוא אותו? האבר חוזר במערך הרבה פעמים מה אם המערך היה ממוין? איך ננצל את העובדה הזו? ... ... חציונים, זמן ליניארי, נחלק את המערך קצת יותר מגודל האינטרוול אם הוא היה ממוין והיינו מחלקים אז אינטרוול אחד היה את כולם ולכן נמצא את האברים n/6,2n/6,3n/6,4n/6 וכו ואחד מהם מופיע n/5 פעמים ... n/6 intervals 25

תרגיל 3 פתרון נמצא את ה-order statistics הבאים n/6 2n/6 3n/6 … אחד מהם חייב להיות בוודאות האיבר המופיע n/5 פעמים סה"כ סיבוכיות - לינארית 26

תרגיל 4 מציאת חציון משותף לשני מערכים ממוינים שאין להם אברים משותפים פתרון זמן לינארי? זמן לוגריתמי? נמצא חציון של כל אחד מהם, נניח בה"כ כי x<y איפה יהיה החציון של האיחוד? ניפטר מכל מה שמתחת לx וכל מה שמעל לy נחזור על התהליך רקורסיבית x y A B AUB x y זמן לוגריתימי, מצא חציון של כל אחד ותעיף חצי מכל מערך... חציון 27

תרגיל 5 במערך אבר מסוים מופיע n/2 פעמים, אחר n/4 פעמים, הבא n/8 פעמים וכו' כיצד ניתן למיין את המערך ובאיזו מהירות? פתרון ניתן לעשות זאת בזמן לינארי מוצאים את זה שמופיע הכי הרבה, רצים ומוציאים אותו מהמערך, ממשיכים רקורסיבית ובסוף ממיינים את logn הערכים אפשר להראות למה החסם התחתון לינארי 28

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